从 2.2 升级到 2.3 后,我看到了这个警告
当我尝试编译项目时,我看到了这个编译错误
如何在不降级到以前的 gradle 版本的情况下解决这个问题?是否有任何可以解决此问题的 android-apt 更新?
从 2.2 升级到 2.3 后,我看到了这个警告
当我尝试编译项目时,我看到了这个编译错误
如何在不降级到以前的 gradle 版本的情况下解决这个问题?是否有任何可以解决此问题的 android-apt 更新?
该android-apt
插件已被弃用。
在此处查看迁移指南:
从 Android Gradle 插件版本 2.2 开始,之前由 android-apt 提供的所有功能现在都可以在 Android 插件中使用。
您可以按照迁移指南删除android-apt
以获取等效功能。
迁移指南中的重要部分:
- 确保您使用的是 Android Gradle 2.2 插件或更新版本。
- 从构建脚本中删除
android-apt
插件- 将 all 和依赖项更改
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'
您可以随时查看https://github.com/contentful/vault以获取最新版本
删除 apt 插件
改变:
apt -> 编译
testApt -> testAnnotationProcessor
androidTestApt -> androidTestAnnotationProcessor
在您的 build.gradle (app) 中,添加到 defaultConfig:
vectorDrawables.useSupportLibrary = true
在这里捎带@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"
万一注解处理器有参数,也可能不得不改变这一点:
apt {
arguments {
KEY "VALUE"
}
}
对此:
android {
...
defaultConfig {
...
javaCompileOptions {
annotationProcessorOptions {
arguments = ['KEY': 'VALUE']
}
}
}
}