Annotation processors must be explicitly declared now

发布时间 2023-09-08 11:40:11作者: xiaowang_lj

Android Studio升级到最新版3.0 Canary 8后,当使用到注解时,报了如下错误:

Error:Execution failed for task ':app:javaPreCompileDebug'.
> Annotation processors must be explicitly declared now.  The following dependencies on the compile classpath are found to contain annotation processor.  Please add them to the annotationProcessor configuration.
    - butterknife-8.8.1.jar
  Alternatively, set android.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true to continue with previous behavior.  Note that this option is deprecated and will be removed in the future.
  See https://developer.android.com/r/tools/annotation-processor-error-message.html for more details.

借鉴网友的解决方法,在引用注解库的module下的build.gradle文件中,添加了如下配置。

android {
    ...
    
    defaultConfig {
        ...

        javaCompileOptions { 
            annotationProcessorOptions { 
                includeCompileClasspath = true 
            } 
        }
    }
    
    ...
}

遗憾的是,添加上述配置之后,仍然出现这个错误;

这个时候转念一想,工程结构是多module形式的,会不会是重复依赖导致的呢?顺着这个想法,到每个module下的build.gradle文件搜索,发现的确在两个module下都依赖了butterknife注解库。

找到问题就很好解决了,只要去除掉其中一个依赖就可以了。