升级到Android Studio 2.3后,android-apt的插件不兼容
从2.2升级到2.3后,我看到这个警告
当我尝试编译项目时,我看到这个编译错误
我怎样才能解决这个问题,而不降级到以前的gradle版本? 有没有可以解决这个问题的android-apt的更新?
android-apt
插件已被弃用 。
Chech在这里为迁移指南 :
从Android Gradle插件2.2版开始,以前由android-apt提供的所有function现在都可以在Android插件中使用。
您可以按照迁移指南删除android-apt
以获得等效的function。
迁移指南中的重要部分:
- 确保你在Android Gradle 2.2插件或更新。
- 从构build脚本中删除
android-apt
插件- 将所有
apt
,androidTestApt
和testApt
依赖关系更改为新的格式:
dependencies { compile 'com.google.dagger:dagger:2.0' annotationProcessor 'com.google.dagger:dagger-compiler:2.0' }
另外在Android Gradle插件中还有一个明确的检查,就是你所看到的:
使用不兼容的插件进行注释处理android-apt
未来的Android Gradle插件版本将不会与android-apt
工作方式兼容 ,这就是检查的原因。
对我来说,我在使用Contentful的Vault
库时遇到了这个错误,该库指定您包含:
apply plugin: 'com.neenbedankt.android-apt'
和
compile 'com.contentful.vault:core:2.1.0' apt 'com.contentful.vault:compiler:2.1.0'
你需要做的是删除 apply plugin: 'com.neenbedankt.android-apt'
然后更改 :
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'
捎带在@ Gabriele Mariotti在这里,因为他的回答是相当现货,暗示这一点,但没有说明。 Gradle也不build议这是一个有效的选项,尽pipe它也是如此。 androidTestApt
和testApt
的testing等价物是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"