升级到Android Studio 2.3后,android-apt的插件不兼容

时间:2017-03-03 09:13:15

标签: android android-studio gradle android-apt

从2.2升级到2.3后,我看到了这个警告

enter image description here

当我尝试编译项目时,我看到了这个编译错误

enter image description here

如何在不降级到之前的gradle版本的情况下解决此问题? 是否有任何更新的android-apt可以解决这个问题?

4 个答案:

答案 0 :(得分:165)

已弃用android-apt插件 点击此处查看migration guide

  

从Android Gradle插件版本2.2开始,Android-apt之前提供的所有功能现在都可以在Android插件中使用。

您可以按照迁移指南删除android-apt以获取相同的功能。

迁移指南中的重要部分:

  
      
  • 确保您使用的是Android Gradle 2.2插件或更新版本。
  •   
  • 从构建脚本中删除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的工作方式不兼容,这就是检查的原因。

答案 1 :(得分:39)

对我来说,使用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以获取最新版本

答案 2 :(得分:15)

  1. 删除apt插件

  2. 变化:

    apt - >编译

    testApt - > testAnnotationProcessor

    androidTestApt - > androidTestAnnotationProcessor

  3. 在build.gradle(app)中,添加到defaultConfig:

  4. vectorDrawables.useSupportLibrary = true

答案 3 :(得分:6)

在@Gabriele Mariotti身上捎带,因为他的回答非常明确并暗示了这一点,但并没有说出来。 Gradle也不建议将此作为有效选项,尽管它也是如此。 androidTestApttestApt的等效测试为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"