kotlin 中使用 註解處理器的坑

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章