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

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