@author ASCE1885的 Github 简书 微博 CSDN 知乎
本文由于潜在的商业目的,不开放全文转载许可,谢谢!
广而告之时间:我的新书《Android 高级进阶》(https://item.jd.com/10821975932.html)在京东开始预售了,欢迎订购!
伴随着 Android Gradle 插件 2.2 版本的发布,近期 android-apt
作者在官网发表声明证实了后续将不会继续维护 android-apt
,并推荐大家使用 Android 官方插件提供的相同能力。也就是说,大约三年前推出的 android-apt
即将告别开发者,退出历史舞台,Android Gradle 插件提供了名为 annotationProcessor
的功能来完全代替 android-apt
。
下面我们来看下 android-apt
切换到 annotationProcessor
所需的工作。
切换的步骤
为了使用 annotationProcessor
功能代替 android-apt
,首先需要把你的 Android 工程所用的 Gradle 插件版本升级到 2.2 及以上,也就是修改工程根目录的 build.gradle
中的插件版本,本文发布时 Android Studio 最新稳定版 2.2.1 刚刚发布,它推荐的 Gradle 插件版本也是 2.2.1,修改如下:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.1'
}
}
接着移除 Module 的 build.gradle
文件中对 android-apt
的相关配置,也就是删除类似下面的配置:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
}
apply plugin: 'com.neenbedankt.android-apt'
最后将 Module 的 build.gradle
文件中使用 apt
引入的依赖修改为使用 annotationProcessor
进行引入,修改前配置如下:
dependencies {
compile 'com.google.dagger:dagger:2.0'
apt 'com.google.dagger:dagger-compiler:2.0'
}
修改后配置如下:
dependencies {
compile 'com.google.dagger:dagger:2.0'
annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
}
值得一提的是,Android 官方的 annotationProcessor
同时支持 javac
和 jack
编译方式,而 android-apt
只支持 javac
方式。当然,目前 android-apt
在 Android Gradle 插件 2.2 版本上面仍然可以正常运行,如果你没有想支持 jack
编译方式的话,可以继续使用 android-apt
。
拓展阅读
《Whats-next-for-android-apt》1
《android-apt migration》2
欢迎关注我的微信公众号 ASCE1885,专注与原创或者分享 Android,iOS,ReactNative,Web 前端移动开发领域高质量文章,主要包括业界最新动态,前沿技术趋势,开源函数库与工具等。