答案 0 :(得分:165)
已弃用android-apt
插件
点击此处查看migration guide:
从Android Gradle插件版本2.2开始,Android-apt之前提供的所有功能现在都可以在Android插件中使用。
您可以按照迁移指南删除android-apt
以获取相同的功能。
迁移指南中的重要部分:
- 确保您使用的是Android Gradle 2.2插件或更新版本。
- 从构建脚本中删除
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
的工作方式不兼容,这就是检查的原因。
答案 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)
删除apt插件
变化:
apt - >编译
testApt - > testAnnotationProcessor
androidTestApt - > androidTestAnnotationProcessor
在build.gradle(app)中,添加到defaultConfig:
vectorDrawables.useSupportLibrary = true
答案 3 :(得分:6)
在@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"