buildTypes ไม่สามารถนำไปใช้กับ groovy.lang.Closure


241

ฉันได้รับคำเตือนนี้ในไฟล์ gradle โครงการของฉัน:

คำเตือน: (16, 5) 'buildTypes' ไม่สามารถใช้กับ '(groovy.lang.Closure <com.android.build.gradle.internal.dsl.BuildType>)'

ส่วน buildTypes ของฉันคือ:

    buildTypes {
        debug {
            debuggable true
        }
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
        }
    }

ขณะนี้ฉันใช้ Android Studio 1.1.0, compileSdkVersion 22, buildToolsVersion 22.0.0 และ targetSdkVersion 22 ฉันพยายามสำรองข้อมูลถึง 21 แต่ยังคงได้รับคำเตือน

อะไรเป็นสาเหตุของการเตือนนี้และจะแก้ไขอย่างไร?


คุณใช้ปลั๊กอิน: 'com.android.aplication' หรือ 'com.android.library' หรือไม่
Kirill Boyarshinov

@ Kirill: com.android.application
จิม Vitek

คำตอบ:


471

สำหรับฉันปัญหาไม่ได้รับการแก้ไขโดยใช้วิธีการแก้ปัญหาข้างต้น แต่ฉันต้องไปที่การตั้งค่าภายใน Android Studio และเลือก "Use gradle wrapper":

ใน Android Studio ให้เลือก: File \ Settings \ Build, Execution, Deployment \ Build tools \ Gradle

(ผู้ใช้ Mac: Android Studio \ Preferences ... \ Build, Execution, Deployment \ Build tools \ Gradle )

ทำเครื่องหมาย: ใช้ wrapper gradle เริ่มต้น (ค่าเริ่มต้น)

การลบนี้ 'ไม่สามารถใช้กับ' คำเตือน (groovy.lang.Closure ') ทั้งหมดในไฟล์บิลด์


2
นี่คือคำตอบที่ถูกต้องปัญหาที่เกิดขึ้นเมื่อฉันเปิดโครงการบน Windows และจากนั้นบน Linux (ผ่าน Dropbox) มันเปลี่ยนตำแหน่งของการกระจายตัวของการไล่ระดับสี
Rodrigo Direito

1
ฉันมีปัญหาเดียวกัน เพื่อนร่วมทีมของฉันทำงานบนเครื่อง windows การเรียกการอัปเดตทำให้ฉันมีปัญหานี้
ชิป

@ Waterbear ฉันได้แก้ไขคำตอบเดิมด้วยเหตุนี้ (ฉันได้ค้นหาชั่วขณะเช่นนี้: D) หลังจากการตรวจสอบโดยเพื่อนจะสามารถใช้ได้ :) ดู: i.imgur.com/BtCijIW.png
StefMa

อย่างใด 1.3.1 AS บน Mac รีเซ็ตการตั้งค่านี้ใน Build -> Clean การตั้งค่ามันกลับสร้างการแก้ไข ขอบคุณ!
Den Drobiazko

11
บางสิ่งที่โง่กับ Android Studio มันเริ่มแสดงคำเตือนเมื่อฉันสร้างโดย build เป้าหมาย 22 และ buildToolsVersion 22.0.1 .... สำหรับฉัน 'ใช้ wrapper gradle เริ่มต้น' ถูกทำเครื่องหมายว่าเป็นค่าเริ่มต้น (AS 2.0 Beta) ... ฉันเพิ่ง ตัดโค้ดบล็อกของฉันและวางในตำแหน่งเดียวกัน (ไม่มีการเปลี่ยนแปลงโค้ดไม่มีการเปลี่ยนแปลงการกำหนดค่า) .... คำเตือนถูกลบ!
Umair

127

ฉันมีปัญหาเดียวกัน การย้าย buildTypes เป็นรายการสุดท้ายในส่วน android ใช้งานได้สำหรับฉัน

android {
    ...
    buildTypes {
    }
}

2
แปลกที่ตำแหน่งของมันควรสร้างความแตกต่าง แต่เห็นได้ชัดว่ามันทำ
Jason Crosby

มันก็ใช้ได้กับฉันเช่นกัน คุณมีความคิดเห็นใด ๆ เกี่ยวกับวิธีการทำงานนี้หรือไม่? ขอบคุณ
myNameCoad

4
สิ่งนี้ดูเหมือนจะได้ผลสำหรับฉันด้วย แต่จากนั้นฉันก็ยกเลิกการเปลี่ยนแปลงเหล่านั้นและคัดลอก / วางบล็อกนั้นในที่เดียวกันและคำเตือนก็หายไป จากนั้นฉันพยายามที่จะเลิกทำมันทั้งหมดแล้วปิดและเปิดโครงการอีกครั้งเพื่อทำซ้ำคำเตือน แต่มันก็หายไป ฉันคิดว่ามันเป็นเพียงหนึ่งในผู้ที่ชนิดของคำเตือน
รูปไข่ 1

buildTypesสำหรับผมเกือบของคำเตือนที่ถูกลบโดยคำตอบของปีเตอร์ยกเว้นคำเตือนเกี่ยวกับ จากนั้นโซลูชันนี้ใช้งานได้ในครั้งสุดท้าย!
hata

76

1 ตัดและวาง "buildTypes" ที่ตำแหน่งเดียวกันในส่วน "android"

ซิงค์โครงการ 2 ครั้ง


16

เพื่อแก้ปัญหานี้ใน Android สตูดิโอของคุณไปที่File -> การตั้งค่า ในการตั้งค่าเลือกรูปร่าง, การดำเนินการปรับใช้ -> เครื่องมือรูปร่าง -> Gradle และเลือก"ใช้กระดาษห่อ gradle เริ่มต้น (แนะนำ)"ตัวเลือก

หลังจากสร้างbuild.gradleของคุณใหม่จะไม่เป็นไร


1
นี่คือคำตอบที่ถูกต้องหรือคุณสามารถเลือกตำแหน่งการไล่ระดับสีที่เหมาะสม
ตัวชี้ void

1
คำตอบของ @ Peter แตกต่างกันอย่างไร
AndyW

13

หากไม่มีตัวเลือกใด ๆ ด้านบนใช้งานได้ให้ทำดังต่อไปนี้

  1. เปลี่ยนโครงการเป็นProjectเปอร์สเปคทีฟใน "Project Explorer"
  2. ลบ.gradleและbuildโฟลเดอร์
  3. คลิกไฟล์ -> ทำให้แคช / เริ่มใช้ไม่ได้ ... -> ทำให้ใช้ไม่ได้และเริ่มต้นใหม่
  4. ตอนนี้มันทำงานได้ดีและมีความสุข

7

ฉันจัดการเพื่อแก้ปัญหาของฉันโดยทำสิ่งนี้: คลิก "ไฟล์" จากนั้นเลือก "ทำให้แคช / รีสตาร์ทไม่ถูกต้อง


6

วิธีที่ง่ายที่สุดในการแก้ไขปัญหา Gradle นี้คือการสร้างโครงการใหม่เพื่อให้ Android Studio กำหนดค่า Gradle ใหม่

เพียงเลือก "เปิดโครงการ Android Studio ที่มีอยู่" และเลือกโฟลเดอร์โครงการของคุณ

รายละเอียดเพิ่มเติมที่นี่


4

สิ่งนี้ใช้ได้กับฉัน:

buildTypes.debug {
    ext.enableCrashlytics = false
}

buildTypes.release {
    debuggable false
    zipAlignEnabled true
    minifyEnabled false
    signingConfig signingConfigs.release
}

4

ปัญหานำเสนอเมื่อคุณนำเข้าโครงการในสภาพแวดล้อมของคุณและติดตั้งปลั๊กอิน Gradle ในตำแหน่งอื่นนอกเหนือจากที่เคยเป็นในต้นฉบับ คุณเพียงแค่ต้องชี้ให้เห็นว่าการติดตั้ง Gradle ของคุณอยู่ที่ไหน

การย้าย buildTypes หรือ defaultConfig หรือสิ่งอื่น ๆ ระหว่างกันไม่ใช่โซลูชันที่สมบูรณ์


นี่เป็นวิธีที่ฉันแก้ปัญหานี้ในที่สุด ... 1. นำทางใน Android Studio ไปที่: ไฟล์ | การตั้งค่า | ไฟล์ | การตั้งค่า | Build, Execution, Deployment | สร้างเครื่องมือ | Gradle 2. ตรวจสอบให้แน่ใจว่าไม่ได้เลือกตัวเลือกนี้แม้ว่าจะแนะนำให้เก็บ ... ใช้ Wrapper Gradle ที่เป็นค่าเริ่มต้น (แนะนำ) 3. และตรวจสอบอันนี้ ... สิ่งนี้อาจเป็น gradle-nn ในภายหลัง ... C: / ไฟล์โปรแกรม / Android / Android Studio1 / gradle / gradle-2.4 คุณอาจต้องรีสตาร์ท Android Studio สร้างโครงการใหม่ แต่ปัญหาได้รับการแก้ไขแล้ว
มิก

3

ปัญหาที่เกิดขึ้นคือการตั้งค่า Android Studio ของคุณที่คุณอาจนำเข้าเมื่ออัพเกรดยังคงชี้ไปที่ gradle-2.4 หรือเวอร์ชันอื่น ๆ ที่สูงกว่า Android Studio 1.5 ที่คาดไว้

เพื่อแก้ปัญหานี้คุณควรเปิดการตั้งค่าและไปที่Build, Execution, Deployment> Build Tools> Gradleและเปลี่ยนเส้นทางบ้านของการกระจายไล่ระดับสีในพื้นที่ของคุณหรือเลือก wrapper gradle เริ่มต้น

ใช้และซิงค์โครงการของคุณอีกครั้ง


2

ผมมีปัญหาเหมือนกัน. ฉันเริ่มโครงการใหม่และใช้งานได้ดังนั้นฉันจึงคัดลอกไฟล์ build.gradle ในกรณีของฉันความแตกต่างเพียงอย่างเดียวคือการขาดส่วน compileOptions ฉันลบมันออกจากโครงการซิงค์ gradle แทรกส่วน compileOptions อีกครั้งแล้วซิงค์ gradle อีกครั้ง


2

ใน Android Studio ของคุณไปที่ไฟล์ -> การตั้งค่า จากนั้นเลือก Build, Execution, Deployment -> Build Tools -> Gradle และเลือก "ใช้ wrapper gradle เริ่มต้น (แนะนำ)"

สร้างโครงการใหม่


2

ในกรณีของฉันbuildTypesส่วนของฉันอยู่เหนือproductFlavorsส่วนของฉัน การแลกเปลี่ยนตำแหน่งของพวกเขากำจัดคำเตือน:

ก่อน:

buildTypes {

        debug {
            minifyEnabled false
            shrinkResources false
            ...//etc
        }
 }

 productFlavors {
    demo {
        ...//etc
    }
 }

หลังจาก:

 productFlavors {
    demo {
        ...//etc
    }
 }    

 buildTypes {

        debug {
            minifyEnabled false
            shrinkResources false
            ...//etc
        }
 }

ฉันใช้ Android Studio 2.1.2 ด้วยการกำหนดค่าต่อไปนี้ที่ด้านบนของandroidส่วนของฉัน:

android {
    compileSdkVersion 24
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.xyz.abc"
        minSdkVersion 14
        targetSdkVersion 24
        //..etc

1

ฉันเคยมีคำเตือนนี้หลังจากอัปเดต Android Studio

เมื่อฉันไปที่การตั้งค่า >> เครื่องมือสร้าง >> ตัวไล่ระดับฉันพบเส้นทางเส้นทางภายในไม่ถูกต้องเนื่องจากรุ่นตัวปรับได้รับการอัปเดตเช่นกันจาก 2.6 เป็น 2.8

แก้ไขพา ธ ใหม่และซิงก์การไล่ระดับเสียงซ้ำให้ลบคำเตือน

gradlewrapperอีกวิธีหนึ่งคือการใช้งาน


0

การเปลี่ยน distributionUrl = https: //services.gradle.org/distribution/gradle-2.1-bin.zip เป็น gradle-2.1-all.zip ใน gradle-wrapper.properties แก้ไขปัญหาสำหรับฉันแล้ว


0

แก้ไข: นี่เป็นวิธีที่ฉันแก้ปัญหานี้ในที่สุด ...

  1. นำทางใน Android Studio ไปที่:

    ไฟล์ | การตั้งค่า | Build, Execution, Deployment | สร้างเครื่องมือ | Gradle

  2. ตรวจสอบให้แน่ใจว่าไม่มีการทำเครื่องหมายแม้ว่าจะแนะนำให้ ...

    ใช้ Wrapper Gradle เริ่มต้น (แนะนำ)

  3. และสิ่งนี้ถูกตรวจสอบ ...

    ใช้การกระจายแบบไล่ระดับท้องถิ่น

  4. และ Gradle Home ถูกตั้งค่าเป็นสิ่งนี้โดยอาจเป็น gradle-nn ในภายหลัง ...

    C: / ไฟล์โปรแกรม / Android / Android Studio1 / gradle / gradle-2.4

คุณอาจต้องรีสตาร์ท Android Studio สร้างโครงการใหม่ ฯลฯ แต่ปัญหาได้รับการแก้ไขแล้ว

สิ้นสุดการแก้ไข

ฉันกำลังโพสต์สิ่งนี้เพื่อแนะนำให้คนอื่นที่ไม่คุ้นเคยกับปัญหานี้ที่จะเพิกเฉย โครงการทำงานได้อย่างสมบูรณ์แบบโดยไม่คำนึงถึง นี่เป็นเพียงข้อบกพร่องในระบบการสร้างหวังว่าจะได้รับการแก้ไขในไม่ช้า ฉันโพสต์ความคิดเห็นและโหวตที่นี่ว่ามันเป็นหัวข้อที่ใช้งานอีกครั้ง ...

https://code.google.com/p/android/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars&groupby=&sort=&id=76719

หลังจากพยายามทำไม่สำเร็จคำแนะนำในสามกระทู้ต่อไปนี้ฉันทำโครงการใหม่ทั้งหมดตั้งแต่ต้น ฉันเริ่มโครงการ Android Studio ใหม่คัดลอก libs ดั้งเดิมและไฟล์หลักทั้งหมดลงไปโดยไม่สนใจไฟล์ใด ๆ ที่สร้างขึ้นโดยระบบบิลด์และสร้างโครงการใหม่ ทุกอย่างเรียบร้อยยกเว้น "ไม่สามารถใช้กับ" คำเตือน "(groovy.lang.Closure)" "ทุกครั้งจะปรากฏขึ้นอีกครั้งพร้อมด้วย vengence จากนั้นฉันก็ผ่านคำแนะนำเหล่านี้อีกครั้งเพื่อให้แน่ใจว่าฉันไม่ได้มองข้ามบางสิ่งบางอย่าง

1 buildTypes ไม่สามารถใช้ได้กับ groovy.lang.Closure ไปที่การตั้งค่าภายใน Android Studio และเลือก "Use Gradle wrapper": ใน Android Studio ให้เลือก: File \ Settings \ Build, Execution, Deployment \ Build tools \ Gradle Mark: ใช้ gradle เริ่มต้น wrapper (ค่าเริ่มต้น) สิ่งนี้ถูกลบออกทั้งหมด 'ไม่สามารถใช้กับคำเตือน' (groovy.lang.Closure ') ในไฟล์บิลด์

2 'dependencies' ไม่สามารถใช้กับ '(groovy.lang.Closure)' เปิดและแก้ไขไฟล์: yourproject / gradle / wrapper / gradle-wrapper.propertie แก้ไขเนื้อหาดังภาพด้านล่างแล้วบันทึก ลบโฟลเดอร์นี้: yourproject / .gradle คลิกซิงค์โครงการด้วยไฟล์ gradle จากนั้นคุณพร้อมที่จะไป

3 https://github.com/DrKLO/Telegram/issues/870

การกำหนดค่าของฉันคือ: Android Studio 1.3, compileSdk เวอร์ชัน 22, buildTools เวอร์ชั่น "22.0.1"



0

ทั้งหมดที่ฉันต้องทำเพื่อลบ

productFlavors {
}

จาก

buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
}

และคำเตือนก็หายไป

ดูสุดท้ายเป็นเช่นนี้

buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

0

การเปลี่ยนbuildToolsVersionจาก

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.2" 
.. 
}

ถึง

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.1" 
.. 
}

ทำงานให้ฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.