当没有kotlin代码时,我真的需要使用kapt吗?

时间:2018-05-24 21:14:12

标签: java android kotlin kapt annotation-processor

这个问题的原因是下一个问题:我一直在使用这个library来创建Java中的类,我决定将所有模型迁移到kotlin类。

阅读一些文档我意识到我需要使用KAPT而不是“annotationProcessor”。

问题:事情是,当我试图运行应用程序之后,我开始遇到使用“annotationProcessor”的Dagger 2和Butterknife的问题,因为他们正在处理JAVA类,而不是Kotlin类。为了让事情再次发挥作用,我必须在gradle文件中为每个“annotationProcessor”添加一个新行,而不是使用“kapt”。

所以我的问题是:如果使用这些框架的代码是纯Java类,我真的需要这样做吗?如果我需要这样做,你能解释一下这个原因吗?

感谢您花时间阅读本文!

1 个答案:

答案 0 :(得分:2)

是的,你需要这样做。

将Kapt添加到项目后,它会完全接管注释处理,因此Java编译任务不会运行任何注释处理器。为了使Kotlin和Java中的注释生成的代码可用于在javac之前运行的Kotlin编译器,这是必要的。

由于Kapt在Kotlin和Java文件中处理注释,因此将它用于Java中的注释是Kotlin + Java项目的推荐方法。