一、 annotationProcessor
- 注解用于Java文件。
二、kapt
- 注解用于Kotlin文件时,需要使用这个关键字。
- 在module的gradle里,添加kapt支持:apply plugin: ‘kotlin-kapt’
- 如果出现以下报错,则在AS的Terminal,执行:gradlew assembleDebug --stacktrace ,即可查看错误信息。注意,新版的AS,需改为:./gradlew assembleDebug --stacktrace
* What went wrong:
Execution failed for task ':app:kaptDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution
> java.lang.reflect.InvocationTargetException (no error message)
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
在Terminal窗口,即可看到报错信息,修改即可。
三、题外话
今天接入Arouter,使用注解编译IProvider,一直获取不到Provider,一直报Null,根据github上的官方文档配置也没有错。后面,发现我这边的项目,是基于kotlin所写,注解需要使用kapt。而使用kapt后,随即报了上面的错,上网查了一遍,发现可以通过这个命令,来找到报错原因,一试才发现,是编译注解时失败,原因是被注解的字段,使用了private修饰符,后面去掉private修饰符即可。