如果是 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