buildTypes không thể được áp dụng cho groovy.lang.Clenses


241

Tôi nhận được cảnh báo này trong tệp lớp dự án của mình:

Cảnh báo: (16, 5) 'buildTypes' không thể được áp dụng cho '(groovy.lang.Clenses <com.android.build.gradle.i INTERNal.dsl.BuildType>)'

Phần buildTypes của tôi là:

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

Tôi hiện đang sử dụng Android Studio 1.1.0, compileSdkVersion 22, buildToolsVersion 22.0.0 và targetSdkVersion 22. Tôi đã thử sao lưu xuống 21 nhưng vẫn nhận được cảnh báo.

Điều gì gây ra cảnh báo này & nó được sửa như thế nào?


Bạn đã áp dụng plugin: 'com.android.aplication' hoặc 'com.android.l Library' chưa?
Kirill Boyarshinov

@Kirill: com.android.application
Jim Vitek

Câu trả lời:


471

Đối với tôi, vấn đề không được giải quyết bằng cách áp dụng giải pháp trên. Thay vào đó, tôi đã phải đi đến các cài đặt trong Android Studio và chọn "Sử dụng trình bao bọc lớp":

Trong Android Studio, chọn: Tệp \ Cài đặt \ Xây dựng, Thi hành, Triển khai \ Xây dựng công cụ \ Gradle

(Người dùng Mac: Android Studio \ Preferences ... \ Build, Execut, Deployment \ Build tools \ Gradle )

Đánh dấu: Sử dụng trình bao bọc lớp mặc định (mặc định)

Điều này đã loại bỏ tất cả các cảnh báo 'không thể được áp dụng cho các cảnh báo' (groovy.lang.Clenses ') trong các tệp xây dựng.


2
Đây là câu trả lời đúng, vấn đề xảy ra khi tôi mở dự án trên Windows và sau đó trên Linux (thông qua Dropbox), nó thay đổi vị trí phân phối lớp, vì vậy tốt hơn là sử dụng trình bao bọc lớp mặc định.
Rodrigo Direito

1
Tôi gặp vấn đề tương tự. Đồng đội của tôi làm việc trên một máy tính windows. Tìm nạp các bản cập nhật đang cho tôi vấn đề này
chip

@Waterbear Tôi đã chỉnh sửa câu trả lời ban đầu vì điều này (Tôi cũng đã tìm kiếm một lúc cho điều này: D). Sau khi đánh giá ngang hàng, nó sẽ có sẵn :) Xem: i.imgur.com/BtCijIW.png
StefMa

Bằng cách nào đó 1.3.1 AS trên Mac đặt lại cài đặt này trên Build -> Clean. Thiết lập lại bản sửa lỗi xây dựng. Cảm ơn!
Den Drobiazko

11
Có gì đó ngu ngốc với Android Studio, nó bắt đầu hiển thị cảnh báo cho tôi khi tôi tạo bằng cách xây dựng mục tiêu 22 và buildToolsVersion 22.0.1 .... Đối với tôi 'Sử dụng trình bao bọc lớp mặc định' đã được đánh dấu là mặc định (AS 2.0 Beta) ... tôi chỉ cắt khối mã của tôi và dán tại cùng một nơi (không thay đổi mã, không thay đổi cấu hình) .... cảnh báo đã bị xóa!
Umair

127

Tôi gặp vấn đề tương tự. Di chuyển buildTypes là mục cuối cùng trong phần Android làm việc cho tôi.

android {
    ...
    buildTypes {
    }
}

2
Điều lạ lùng là vị trí của nó sẽ tạo ra sự khác biệt nhưng rõ ràng là có.
Jason Crosby

Điều này làm việc cho tôi quá. Bạn có bất cứ ý tưởng làm thế nào điều này làm việc? Cảm ơn.
myNameCoad

4
Điều này dường như cũng có tác dụng với tôi, nhưng sau đó tôi đã gỡ bỏ những thay đổi đó và sao chép / dán khối đó vào cùng một chỗ và cảnh báo cũng biến mất. Sau đó, tôi đã cố gắng hoàn tác tất cả và đóng và mở lại dự án để sao chép cảnh báo, nhưng nó đã biến mất. Tôi nghĩ rằng đó chỉ là một trong những loại cảnh báo.
elliptic1

Đối với tôi, hầu hết các cảnh báo đã bị xóa bởi câu trả lời của Peter, ngoại trừ cảnh báo về buildTypes. Sau đó, giải pháp này đã làm việc cho người cuối cùng!
hata

76

1 Cắt và Dán "buildTypes" ở cùng một vị trí trong phần "android"

Dự án đồng bộ hóa 2


16

Để giải quyết vấn đề này, trong Android Studio của bạn, hãy chuyển đến Tệp -> Cài đặt . Trong cài đặt, chọn Xây dựng, Thực thi, Triển khai -> Công cụ xây dựng -> Lớp và chọn "Sử dụng trình bao bọc lớp mặc định (được khuyến nghị)" .

Sau khi xây dựng lại build.gradle của bạn sẽ hoàn toàn ổn.


1
Đây là câu trả lời đúng HOẶC bạn có thể chọn vị trí lớp thích hợp
con trỏ trống

1
Làm thế nào khác nhau câu trả lời của @ Peter.
AndyW

13

Nếu không có tùy chọn nào ở trên hoạt động, thì hãy làm như sau

  1. Thay đổi dự án thành Projectphối cảnh trong "Project Explorer".
  2. Xóa .gradlebuildthư mục.
  3. Nhấp vào Tệp -> Bộ nhớ cache không hợp lệ / Khởi động lại ... -> Không hợp lệ và khởi động lại
  4. Bây giờ nó làm việc, mã hóa hạnh phúc.

7

Tôi đã quản lý để giải quyết vấn đề của mình bằng cách thực hiện việc này: Nhấp vào "Tệp" rồi chọn "Bộ nhớ cache / Khởi động lại không hợp lệ


6

Cách dễ nhất để khắc phục sự cố Gradle này là tạo lại dự án để cho Android Studio cấu hình lại Gradle.

Chỉ cần chọn "Mở dự án Android Studio hiện có" và chọn thư mục dự án của bạn.

Thêm chi tiết tại đây .


4

điều này làm việc cho tôi:

buildTypes.debug {
    ext.enableCrashlytics = false
}

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

4

Vấn đề xuất hiện khi bạn nhập dự án vào môi trường của mình và plugin Gradle được cài đặt ở một vị trí khác với vị trí ban đầu. Bạn chỉ cần chỉ ra nơi cài đặt Gradle của bạn.

Di chuyển buildTypes hoặc defaultConfig hoặc bất cứ điều gì giữa nhau không phải là một giải pháp hoàn chỉnh


Đây là cách cuối cùng tôi đã giải quyết vấn đề này ... 1. Điều hướng trong Android Studio tới: File | Cài đặt | Tập tin | Cài đặt | Xây dựng, Thi công, Triển khai | Xây dựng công cụ | Lớp 2. Đảm bảo rằng điều này không được kiểm tra, mặc dù bạn nên giữ ... Sử dụng Trình bao bọc lớp mặc định (được khuyến nghị) 3. và điều này được kiểm tra ... Sử dụng phân phối lớp cục bộ 4. và Trang chủ Gradle được đặt thành điều này, có thể là một lớp sau này ... C: / Tệp chương trình / Android / Android Studio1 / gradle / gradle-2.4 Bạn có thể phải khởi động lại Android Studio, xây dựng lại dự án, v.v. nhưng vấn đề đã được giải quyết.
Mick

3

Vấn đề trong tay là các cài đặt Android Studio mà bạn có thể đã nhập khi nâng cấp, vẫn đang trỏ đến lớp 2.4 hoặc một số phiên bản khác ngoài Android Studio 1.5 mong đợi.

Để giải quyết vấn đề này, bạn nên mở Cài đặt và đi đến Xây dựng, Thực thi, Triển khai> Công cụ xây dựng> Cấp độ và thay đổi đường dẫn nhà phân phối lớp cục bộ của bạn hoặc chọn trình bao bọc lớp mặc định.

Áp dụng và đồng bộ lại dự án của bạn.


2

Tôi đã từng gặp vấn đề tương tự. Tôi đã bắt đầu một dự án mới và nó đã hoạt động, vì vậy tôi chỉ sao chép tệp build.gradle. Trong trường hợp của tôi, sự khác biệt duy nhất là thiếu phần compileOptions. Tôi đã xóa nó khỏi dự án của mình, đồng bộ hóa lớp, chèn lại phần compileOptions và sau đó đồng bộ hóa lại lớp.


2

Trong Studio Android của bạn, hãy chuyển đến Tệp -> Cài đặt. Tiếp theo chọn Xây dựng, Thực thi, Triển khai -> Công cụ xây dựng -> Lớp và chọn "Sử dụng trình bao bọc lớp mặc định (được khuyến nghị)".

Xây dựng lại dự án.


2

Trong trường hợp của tôi, buildTypesphần của tôi là trên của tôiproductFlavors phần . Trao đổi vị trí của họ đã thoát khỏi cảnh báo:

TRƯỚC:

buildTypes {

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

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

SAU:

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

 buildTypes {

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

Tôi đang sử dụng Android Studio 2.1.2 với cấu hình sau ở đầu androidphần:

android {
    compileSdkVersion 24
    buildToolsVersion "23.0.3"

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

1

Tôi đã từng có cảnh báo này, sau khi tôi cập nhật Android Studio.

Khi tôi vào Cài đặt >> Công cụ xây dựng >> Gradle tôi thấy đường dẫn Lớp cục bộ không hợp lệ, vì phiên bản lớp được cập nhật cũng từ 2.6 đến 2.8.

Đã sửa lỗi đường dẫn mới và đồng bộ hóa lại lớp đã xóa cảnh báo.

Một cách khác là sử dụng gradlewrapper.


0

Thay đổi phân phốiUrl = https: //service.gradle.org/distribution/gradle-2.1-bin.zip thành gradle-2.1-all.zip trong gradle-wrapper.properies đã giải quyết vấn đề cho tôi.


0

EDIT: Đây là cách cuối cùng tôi đã giải quyết vấn đề này ...

  1. Điều hướng trong Android Studio tới:

    Tập tin | Cài đặt | Xây dựng, Thi công, Triển khai | Xây dựng công cụ | Học sinh lớp

  2. Đảm bảo rằng điều này không được kiểm tra, mặc dù nên giữ ...

    Sử dụng Trình bao bọc lớp mặc định (được khuyến nghị)

  3. và cái này được kiểm tra ...

    Sử dụng phân phối lớp địa phương

  4. và Gradle Home được thiết lập cho điều này, có thể là một lớp sau này ...

    C: / Tệp chương trình / Android / Android Studio1 / gradle / gradle-2.4

Bạn có thể phải khởi động lại Android Studio, xây dựng lại dự án, v.v. nhưng vấn đề đã được giải quyết.

Kết thúc EDIT.

Tôi đang đăng bài này để tư vấn cho bất kỳ ai khác mới về vấn đề này bỏ qua nó. Dự án chạy hoàn hảo bất kể. Điều này khá đơn giản là một lỗi trong hệ thống xây dựng, hy vọng sẽ được khắc phục sớm. Tôi đã đăng một bình luận và bình chọn ở đây, nơi đây lại là một chủ đề tích cực ...

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

Sau khi thử, không thành công, các đề xuất trong ba chủ đề sau, tôi đã thực hiện lại toàn bộ dự án từ đầu. Tôi đã bắt đầu một dự án Android Studio mới, sao chép tất cả các tệp gốc và tệp chính vào đó bỏ qua mọi tệp được tạo bởi hệ thống xây dựng và xây dựng lại dự án. Mọi thứ đều ổn trừ tất cả những cảnh báo "không thể được áp dụng cho '(groovy.lang.Clenses)'" xuất hiện lại với một sự báo thù. Sau đó, tôi đã đi qua những gợi ý này một lần nữa để chắc chắn rằng tôi đã không bỏ qua điều gì.

1 buildTypes không thể được áp dụng cho groovy.lang.Clenses đến cài đặt trong Android Studio và chọn "Sử dụng trình bao bọc lớp": Trong Android Studio chọn: File \ Settings \ Build, Exloyment, Deployment \ Build tools \ Gradle Mark: Sử dụng lớp mặc định trình bao bọc (mặc định) Điều này đã loại bỏ tất cả các cảnh báo 'không thể áp dụng cho' (groovy.lang.Clenses ') trong các tệp xây dựng.

2 'phụ thuộc' không thể được áp dụng cho '(groovy.lang.Clenses)' Mở và chỉnh sửa tệp: yourproject / gradle / Wrapper / gradle-Wrapper.propertie. Chỉnh sửa nội dung như hình ảnh dưới đây sau đó lưu lại. Xóa thư mục này: yourproject / .gradle. Nhấp vào Dự án đồng bộ hóa với các tập tin lớp, sau đó bạn tốt để đi.

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

Cấu hình của tôi là: Android Studio 1.3, compileSdk Phiên bản 22, buildTools Phiên bản "22.0.1"



0

Tất cả tôi phải làm để loại bỏ

productFlavors {
}

Từ

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

và cảnh báo đã biến mất.

Cái nhìn cuối cùng là như thế này

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

0

Thay đổi buildToolsVersiontừ

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.2" 
.. 
}

đến

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.1" 
.. 
}

đã làm cho tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.