升级到 Android Studio 2.3 后 android-apt 的不兼容插件
Incompatible plugins for android-apt after upgrading to Android Studio 2.3
从 2.2 升级到 2.3 后,我看到了这个警告
当我尝试编译项目时,我看到了这个编译错误
如何在不降级到以前的 gradle 版本的情况下解决这个问题?
android-apt 是否有更新可以解决这个问题?
android-apt
插件 已被弃用。
在此处检查 migration guide:
As of the Android Gradle plugin version 2.2, all functionality that was previously provided by android-apt is now available in the Android plugin.
您可以按照迁移指南删除 android-apt
以获得等效的功能。
迁移指南中的重要部分:
- Make sure you are on the Android Gradle 2.2 plugin or newer.
- Remove the
android-apt
plugin from your build scripts
- Change all
apt
, androidTestApt
and testApt
dependencies to their new format:
dependencies {
compile 'com.google.dagger:dagger:2.0'
annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
}
同样在 Android Gradle 插件中有一个明确的检查,这就是你所看到的:
using incompatible plugins for the annotation processing android-apt
未来的 Android Gradle 插件版本将不兼容 与 android-apt
的工作方式,这就是进行该检查的原因。
在这里借用@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"
对我来说,我在使用 Contentful 的 Vault
库时遇到了这个错误,该库指定您包括:
apply plugin: 'com.neenbedankt.android-apt'
和
compile 'com.contentful.vault:core:2.1.0'
apt 'com.contentful.vault:compiler:2.1.0'
你需要做的是DELETE 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(应用程序)中,添加到 defaultConfig:
vectorDrawables.useSupportLibrary = 真
如果注释处理器有参数,可能还需要更改此设置:
apt {
arguments {
KEY "VALUE"
}
}
对此:
android {
...
defaultConfig {
...
javaCompileOptions {
annotationProcessorOptions {
arguments = ['KEY': 'VALUE']
}
}
}
}
从 2.2 升级到 2.3 后,我看到了这个警告
当我尝试编译项目时,我看到了这个编译错误
如何在不降级到以前的 gradle 版本的情况下解决这个问题? android-apt 是否有更新可以解决这个问题?
android-apt
插件 已被弃用。
在此处检查 migration guide:
As of the Android Gradle plugin version 2.2, all functionality that was previously provided by android-apt is now available in the Android plugin.
您可以按照迁移指南删除 android-apt
以获得等效的功能。
迁移指南中的重要部分:
- Make sure you are on the Android Gradle 2.2 plugin or newer.
- Remove the
android-apt
plugin from your build scripts- Change all
apt
,androidTestApt
andtestApt
dependencies to their new format:
dependencies {
compile 'com.google.dagger:dagger:2.0'
annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
}
同样在 Android Gradle 插件中有一个明确的检查,这就是你所看到的:
using incompatible plugins for the annotation processing android-apt
未来的 Android Gradle 插件版本将不兼容 与 android-apt
的工作方式,这就是进行该检查的原因。
在这里借用@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"
对我来说,我在使用 Contentful 的 Vault
库时遇到了这个错误,该库指定您包括:
apply plugin: 'com.neenbedankt.android-apt'
和
compile 'com.contentful.vault:core:2.1.0'
apt 'com.contentful.vault:compiler:2.1.0'
你需要做的是DELETE 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(应用程序)中,添加到 defaultConfig:
vectorDrawables.useSupportLibrary = 真
如果注释处理器有参数,可能还需要更改此设置:
apt {
arguments {
KEY "VALUE"
}
}
对此:
android {
...
defaultConfig {
...
javaCompileOptions {
annotationProcessorOptions {
arguments = ['KEY': 'VALUE']
}
}
}
}