Android Gradle Plugin 3.0使用Annotation Processor配置依赖说明

时间:2022-06-01 20:38:37

在Android Gradle  3.0之前的版本,compile classpath里的依赖会自动添加到processor classpath,这样在compile classpath里的annotation processor也被添加到processor classpath里,所以插件运行正常。

从Android Gradle Plugin 3.0开始,不再支持自动添加compile classpath里的依赖到processor classpath里的做法,需要我们使用annotationProcessor手动添加依赖。

示例:

dependencies {
    ...
    annotationProcessor 'com.google.dagger:dagger-compiler:<version-number>'
}

Android Gradle 3.0插件仍然会检测依赖的Jar包,如果Jar包里存在META-INF/services/javax.annotation.processing.Processor,那么它就认为这是一个annotation processor,如果在compile classpath里检测到annotation processor,就会导致构建失败。只需要把配置里的compile改为annotationProcessor即可。

如果compile classpath里也需要依赖annotation processor的Jar,那么需要使用compile配置相同的包依赖。

如果在compile classpath里存在你不需要的annotation processor,可以在annotationProcessorOptions 添加配置includeCompileClasspath false来禁用插件对compile classpath里的annotation processor的检查。

如下配置

android {
    ...
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                includeCompileClasspath false
            }
        }
    }
}

注意:如果在升级过程中有问题需要回退到Android Studio 2.3,那么可以把includeCompileClasspath设为true,添加compile classpath里的依赖到processor classpath。