Các plugin không tương thích cho android-apt sau khi nâng cấp lên Android Studio 2.3


100

Sau khi nâng cấp từ 2.2 lên 2.3, tôi thấy cảnh báo này

nhập mô tả hình ảnh ở đây

và khi tôi cố gắng biên dịch dự án, tôi thấy lỗi biên dịch này

nhập mô tả hình ảnh ở đây

Làm cách nào để giải quyết vấn đề này mà không cần hạ cấp xuống phiên bản gradle trước đó? Có bản cập nhật nào của android-apt có thể giải quyết vấn đề này không?

Câu trả lời:


179

Các android-aptPlugin đã bị phản đối .
Kiểm tra hướng dẫn di chuyển tại đây :

Kể từ phiên bản plugin Android Gradle 2.2, tất cả các chức năng được cung cấp trước đây bởi android-apt hiện đã có trong plugin Android.

Bạn có thể xóa android-aptbằng cách làm theo hướng dẫn di chuyển để có được các chức năng tương đương.

Các phần quan trọng từ hướng dẫn di chuyển :

  • Đảm bảo rằng bạn đang sử dụng plugin Android Gradle 2.2 hoặc mới hơn.
  • Gỡ bỏ android-apt plugin khỏi tập lệnh xây dựng của bạn
  • Thay đổi tất cả apt, androidTestApttestAptphụ thuộc vào định dạng mới của họ:
dependencies {
   compile 'com.google.dagger:dagger:2.0'
   annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
}

Ngoài ra trong plugin Android Gradle có một kiểm tra rõ ràng cho điều này, đó là những gì bạn đang thấy:

sử dụng các plugin không tương thích để xử lý chú thích android-apt

Các phiên bản plugin Android Gradle trong tương lai sẽ không tương thích với cách thức android-apthoạt động, đó là lý do cho việc kiểm tra đó.


Cảm ơn! Tôi không biết rằng apt không được dùng nữa.
Bronx

1
Và trong plugin Android Gradle, Google có một kiểm tra rõ ràng cho nó, đó là những gì bạn đang thấy. Các phiên bản Android Gradle trong tương lai sẽ không tương thích với cách thức android-apthoạt động, đó là lý do cho việc kiểm tra đó.
đáy

séc ở đâu?
ericn

Tôi không có bất kỳ apt nào nhưng vẫn nhận được cảnh báo này. CHỈNH SỬA: Hóa ra đó là cảnh giới
behelit.

Tôi không thấy NDROID-pt trong mã của mình ở bất kỳ đâu nhưng đang gặp lỗi. Vấn đề có thể là gì?
Mubashar

47

Đối với tôi, tôi đã gặp lỗi này khi sử dụng Vaultthư viện của Contentful chỉ định rằng bạn bao gồm:

apply plugin: 'com.neenbedankt.android-apt'

compile 'com.contentful.vault:core:2.1.0'
apt 'com.contentful.vault:compiler:2.1.0'

Những gì bạn cần làm là XÓA apply plugin: 'com.neenbedankt.android-apt'

và sau đó THAY ĐỔI :

compile 'com.contentful.vault:core:2.1.0'
apt 'com.contentful.vault:compiler:2.1.0'

đến

annotationProcessor 'com.contentful.vault:compiler:2.1.0'
annotationProcessor 'com.contentful.vault:core:3.0.1'

Bạn luôn có thể kiểm tra https://github.com/contentful/vault để biết các phiên bản mới nhất


15
  1. Xóa plugin apt

  2. Thay đổi:

    apt -> biên dịch

    testApt -> testAnnotationProcessor

    androidTestApt -> androidTestAnnotationProcessor

  3. Trong build.gradle (ứng dụng) của bạn, hãy thêm vào defaultConfig:

vectorDrawables.useSupportLibrary = true


6

Cõng trên @Gabriele Mariotti ở đây vì câu trả lời của anh ấy khá đúng và ngụ ý điều này nhưng không nêu rõ. Gradle cũng không đề xuất đây là một tùy chọn hợp lệ. Thử nghiệm tương đương cho androidTestApttestAptandroidTestAnnotationProcessortestAnnotationProcessor.

Thí dụ:

testApt "com.google.dagger:dagger-compiler:$daggerVersion"
androidTestApt "com.google.dagger:dagger-compiler:$daggerVersion"

Nên đổi thành

testAnnotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"
androidTestAnnotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"

1

Trong trường hợp bộ xử lý chú thích có các đối số, người ta cũng có thể phải thay đổi điều này:

apt {
    arguments {
        KEY "VALUE"
    }
}

đến điều này:

android {
    ...
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ['KEY': 'VALUE']
            }
        }
    }
}
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.