如果是 kotlin 的项目,切记依赖注解处理器时要使用 kapt。
在 app 的 gradle 中引入 注解处理器的 module 的时候一定要使用 kapt,不然无法生成 文件。
引入方式如下:
apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' dependencies { ....... implementation project(':libnavannotation') //注解库 kapt project(":libnavcompiler") //注解处理器 }
如果 注解处理器使用的也是 kotlin,则还需要修改一下东西,如下:
注解处理器的gradle 文件:
apply plugin: 'java-library' apply plugin: 'kotlin' apply plugin: 'kotlin-android-extensions' tasks.withType(JavaCompile) { options.encoding = "UTF-8" } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation project(':libnavannotation') implementation this.rootProject.depsLibs.fastjson //auto service implementation this.rootProject.depsLibs.autoservice implementation this.rootProject.depsLibs.corektx annotationProcessor 'com.google.auto.service:auto-service:1.0-rc6' } sourceCompatibility = "8" targetCompatibility = "8"
接着需要在 注解处理器的 library 的 main 文件夹下创建一个 resources 文件,路径为 src/main/resources/META-INF/service/javax.annotation.processing.Processor
在文件中注明注解处理器的全类别即可:如上图所示。
最后注意一下,注解处理器的代码一定要没有问题,我就是 将 || 写成了 && ,才遇到了一系列的坑
修改完成后记得 clean 一下项目,接着在生成文件。
如果还不行,那就参照一下 我的项目,看一下到底是哪里出了问题