2017-03-03 27 views
63

Sau khi nâng cấp 2,2-2,3 Tôi thấy cảnh báo nàyplugin tương thích cho android-apt sau khi nâng cấp lên Android Studio 2.3

enter image description here

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

enter image description here

Làm cách nào để giải quyết sự cố này mà không hạ cấp xuống phiên bản ưu tiên 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?

Trả lời

110

Plugin android-aptkhông được dùng nữa.
Kiểm tra ở đây cho migration guide:

Tính đến plugin phiên bản Android Gradle 2.2, tất cả các chức năng mà trước đây được cung cấp bởi android-apt bây giờ đã có trong các plugin Android.

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

Các bộ phận quan trọng từ hướng dẫn di cư:

  • Hãy chắc chắn rằng bạn đang ở trên 2.2 Plugin Android Gradle hoặc mới hơn.
  • Hủy bỏ các plugin android-apt từ xây dựng của bạn kịch bản
  • Thay đổi tất cả apt, androidTestApttestApt phụ thuộc sang định dạng mới của họ:
dependencies { 
    compile 'com.google.dagger:dagger:2.0' 
    annotationProcessor 'com.google.dagger:dagger-compiler:2.0' 
} 

Cũng trong Android Gradle Plugin có một kiểm tra rõ ràng cho này, đó là những gì bạn đang thấy:

sử dụng p không tương thích lugins cho chế biến chú thích android-apt

Future Android Gradle phiên bản plugin sẽ không tương thích với cách android-apt công trình, đó là lý do cho tờ séc đó.

+0

Cảm ơn! Tôi không biết rằng apt đã không được chấp nhận. – 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 nhìn 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 'android-apt' hoạt động, đó là lý do cho việc kiểm tra đó. – botteaap

+0

@botteaap Cảm ơn bạn đã quan tâm. Đã cập nhật câu trả lời. –

6

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

Ví dụ:

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

nên được thay đổi để

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

Đối với tôi, tôi đã có lỗi này khi sử dụng thư viện Vault Contentful của xác đị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à DELETEapply plugin: 'com.neenbedankt.android-apt'

và sau đó ĐỔI:

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

để

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 cho cuối phiên bản st

4
  1. Remove Plugin apt

  2. Thay đổi:

    apt -> biên dịch

    testApt -> testAnnotationProcessor

    androidTestApt -> androidTestAnnotationProcessor

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

vectorDrawables.useSupportLibrary = true

0

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

apt { 
    arguments { 
     KEY "VALUE" 
    } 
} 

cho điều này:

android { 
    ... 
    defaultConfig { 
     ... 
     javaCompileOptions { 
      annotationProcessorOptions { 
       arguments = ['KEY': 'VALUE'] 
      } 
     } 
    } 
} 
Các vấn đề liên quan