我有一个解析XML文件的自定义注释处理器。它与Android Studio 2.3.3
一起工作正常,现在我已更新Android Studio to version 3.0
(稳定),它突然开始为我的注释处理器的注释抛出NoClassDefFound
错误。
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> java.lang.NoClassDefFoundError: io/github/***/annotations/****
在Gradle
compile 'io.github.allaudin:****:1.0.0'
annotationProcessor 'io.github.allaudin:****-processor:1.0.0'
答案 0 :(得分:3)
行。通过在includeCompileClasspath
中将true
设为build.gradle
来实现它。
android {
...
defaultConfig {
...
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath true
}
}
}
}
答案 1 :(得分:0)
您必须迁移到新的Android gradle插件:关注these steps
在以前版本的插件中,编译类路径的依赖关系会自动添加到处理器类路径中。也就是说,您可以将一个注释处理器添加到编译类路径中,它将按预期工作。但是,这会通过向处理器添加大量不必要的依赖性而对性能产生重大影响。
使用Android插件3.0.0时,必须使用annotationProcessor依赖关系配置将注释处理器添加到处理器类路径,如下所示:
dependencies {
...
annotationProcessor 'com.google.dagger:dagger-compiler:<version-number>'
}