升級,從2.2到2.3後後,我看到這個警告對於Android的易不兼容的插件升級至Android工作室2.3
,當我嘗試編譯項目,我看到這個編譯錯誤
我該如何解決這個問題而不降級到以前的gradle版本? 有沒有可以解決這個問題的android-apt的更新?
升級,從2.2到2.3後後,我看到這個警告對於Android的易不兼容的插件升級至Android工作室2.3
,當我嘗試編譯項目,我看到這個編譯錯誤
我該如何解決這個問題而不降級到以前的gradle版本? 有沒有可以解決這個問題的android-apt的更新?
android-apt
插件已被棄用。
檢查這裏爲migration guide:
由於Android的搖籃插件2.2版本,以前由Android的易提供的所有功能現在在Android插件可用。
按照遷移指南獲取等效功能,您可以刪除android-apt
。
從遷移指南的重要部分:
- 確保您是在Android 2.2搖籃插件或更高版本。
- 從構建腳本
- 更改所有
apt
,androidTestApt
和testApt
依賴於他們的新格式取出android-apt
插件:
dependencies {
compile 'com.google.dagger:dagger:2.0'
annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
}
而且在Android搖籃插件有一個明確檢查這就是你所看到的:
使用不兼容p對於註釋處理Android的易
未來的Android搖籃插件版本lugins不會與方式android-apt
作品,這對於檢查原因兼容。
在@Gabriele Mariotti捎帶這裏,因爲他的回答很有用,暗示這一點,但沒有說明。 Gradle也並不認爲這是一個有效的選項,儘管它也是如此。 androidTestApt
和testApt
的測試等效爲androidTestAnnotationProcessor
和testAnnotationProcessor
。
例子:
testApt "com.google.dagger:dagger-compiler:$daggerVersion"
androidTestApt "com.google.dagger:dagger-compiler:$daggerVersion"
應改爲
testAnnotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"
androidTestAnnotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"
對於我來說,我在使用Contentful的Vault
庫有這個錯誤,指定您包括:
apply plugin: 'com.neenbedankt.android-apt'
和
compile 'com.contentful.vault:core:2.1.0'
apt 'com.contentful.vault:compiler:2.1.0'
你需要做的是DELETEapply plugin: 'com.neenbedankt.android-apt'
然後CHANGE什麼:
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'
您可以隨時https://github.com/contentful/vault爲晚ST版本
取出容易插件
變化:
容易 - >編譯
testApt - > testAnnotationProcessor
androidTestApt - > androidTestAnnotationProcessor
在您的build.gradle(應用程序),添加到defaultConfig:
vectorDrawables.useSupportLibrary =真
如果註解處理器具有參數,一個也可能要改變這一點:
apt {
arguments {
KEY "VALUE"
}
}
對此:
android {
...
defaultConfig {
...
javaCompileOptions {
annotationProcessorOptions {
arguments = ['KEY': 'VALUE']
}
}
}
}
謝謝!我不知道apt已被棄用。 – Bronx
而在Android Gradle插件中,Google會明確檢查它,這就是您所看到的。未來的Android Gradle版本將不會以'android-apt'的方式兼容,這就是檢查的原因。 – botteaap
@botteaap謝謝你的觀點。更新了答案。 –