Android Gradle Plugin 3.0使用Annotation Processor配置依赖说明
在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。