升级到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插件
  • 将所有aptandroidTestApttestApt依赖关系更改为新的格式:
 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' 

您可以随时查看https://github.com/contentful/vault获取最新版本;

捎带在@ Gabriele Mariotti在这里,因为他的回答是相当现货,暗示这一点,但没有说明。 Gradle也不build议这是一个有效的选项,尽pipe它也是如此。 androidTestApttestApt的testing等价物是androidTestAnnotationProcessortestAnnotationProcessor

例:

 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"