2

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

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

问题:问题是后来当我尝试运行应用程序时,我开始遇到使用“annotationProcessor”的 Dagger 2 和 Butterknife 的问题,因为它们处理的是 JAVA 类,而不是 Kotlin 类。为了让事情重新开始,我必须在我的 gradle 文件中为每个“annotationProcessor”添加一个新行,但改用“kapt”。

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

感谢您抽时间阅读!

4

1 回答 1

4

是的,你需要这样做。

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

由于 Kapt 处理 Kotlin 和 Java 文件中的注解,因此在 Java 中使用它进行注解是 Kotlin + Java 项目的推荐方式。

于 2018-05-24T21:35:33.483 回答