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


101

从2.2升级到2.3后,我看到此警告

在此处输入图片说明

当我尝试编译项目时,我看到此编译错误

在此处输入图片说明

我如何解决此问题而不降级到较早的gradle版本?是否有任何可以解决此问题的android-apt更新?

Answers:


179

android-apt插件已被弃用
在此处查看迁移指南

从Android Gradle插件2.2版开始,Android插件中现已提供了以前由android-apt提供的所有功能。

您可以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工作方式不兼容,这就是进行此检查的原因。


谢谢!我不知道apt已过时。
布朗克斯

1
在Android Gradle插件中,Google对其进行了明确的检查,这就是您所看到的。未来的Android Gradle版本将与android-apt工作方式不兼容,这就是进行此项检查的原因。
botteaap

支票在哪里?
ericn

我没有任何帮助,但仍然收到此警告。编辑:原来是领域
相信

我在代码中的任何地方都没有看到NDROID-pt,但是出错了。可能是什么问题?
Mubashar

47

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


15
  1. 删除apt插件

  2. 更改:

    apt->编译

    testApt-> testAnnotationProcessor

    androidTestApt-> androidTestAnnotationProcessor

  3. 在您的build.gradle(应用程序)中,添加到defaultConfig:

vectorDrawables.useSupportLibrary = true


6

在这里ggy带@Gabriele Mariotti,因为他的回答很明确,暗示但未声明。Gradle也不建议这样做,尽管它也是有效的。测试等价物androidTestApttestAptandroidTestAnnotationProcessortestAnnotationProcessor

例:

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"

1

如果注释处理器具有参数,则可能还必须更改此参数:

apt {
    arguments {
        KEY "VALUE"
    }
}

对此:

android {
    ...
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ['KEY': 'VALUE']
            }
        }
    }
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.