如果是 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 一下项目,接着在生成文件。
如果还不行,那就参照一下 我的项目,看一下到底是哪里出了问题:
https://github.com/LvKang-insist/ppjoke
欢迎进行 star