剑客
关注科技互联网

android-apt 即将退出历史舞台

@author ASCE1885的  Github 简书 微博 CSDN 知乎 本文由于潜在的商业目的,不开放全文转载许可,谢谢!

android-apt 即将退出历史舞台 伴随着 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 前端移动开发领域高质量文章,主要包括业界最新动态,前沿技术趋势,开源函数库与工具等。

android-apt 即将退出历史舞台

[1]  http://www.littlerobots.nl/blog/Whats-next-for-android-apt/
[2]  https://bitbucket.org/hvisser/android-apt/wiki/Migration

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址