Android编译报错:需显式声明ButterKnife注解处理器,求解决方案
解决注解处理器显式声明的编译报错问题
你遇到的问题是Android Gradle Plugin(AGP)3.0+版本的新规则导致的:注解处理器必须通过annotationProcessor配置显式声明,不能再隐式从编译类路径中加载。你已经正确配置了includeCompileClasspath false(不建议用废弃的true选项),但遗漏了ButterKnife对应的注解处理器依赖,这就是报错的根源。
具体解决步骤:
添加ButterKnife注解处理器依赖
在你的Module级别的build.gradle文件的dependencies块中,添加ButterKnife的注解处理器依赖(版本要和你用的ButterKnife核心库一致,也就是7.0.1):dependencies { // 保留你已有的ButterKnife核心依赖(如果还没加的话也要补上) implementation 'com.jakewharton:butterknife:7.0.1' // 新增ButterKnife注解处理器 annotationProcessor 'com.jakewharton:butterknife-compiler:7.0.1' // 保留你已配置的Dagger注解处理器 annotationProcessor 'com.google.dagger:dagger-compiler:2.0' }保留现有配置
你之前设置的javaCompileOptions配置是正确的,继续保留即可:android { defaultConfig { javaCompileOptions { annotationProcessorOptions { includeCompileClasspath false } } } }同步并重新编译
点击Android Studio右上角的「Sync Now」按钮同步Gradle配置,之后重新编译项目,这个报错应该就会消失了。
补充说明:
- AGP 3.0+之后,
compile依赖已被implementation替代,建议统一使用implementation声明核心库依赖,annotationProcessor声明注解处理器依赖。 - 如果你是Kotlin项目,需要把
annotationProcessor替换为kapt来配置注解处理器。
内容的提问来源于stack exchange,提问作者sirisha
相关产品推荐
相关产品推荐

