在没有 kotlin 代码的情况下,我真的需要使用 kapt 吗?
Do I really need to use kapt when there is no kotlin code?
这个问题的原因是下一个:我一直在使用这个library来使类在Java中可打包,我决定将所有模型迁移到kotlin 类。
阅读一些文档后我意识到我需要使用 KAPT 而不是 "annotationProcessor"。
问题:后来当我尝试 运行 该应用程序时,我开始遇到 Dagger 2 和 Butterknife 的问题,它们在处理 "annotationProcessor" 时使用 JAVA 类,不是 Kotlin 类。为了让事情重新开始,我不得不在我的 gradle 文件中为每个 "annotationProcessor" 添加一个新行,但使用 "kapt" 代替。
所以我的问题是:如果使用这些框架所涉及的代码是纯粹的 java 类,我真的需要这样做吗?如果我需要这样做,你能解释一下原因吗?
感谢您抽出宝贵时间阅读本文!
是的,你需要这样做。
将 Kapt 添加到项目后,它会完全接管注释处理,因此 Java 编译任务不会 运行 任何注释处理器。这是必要的,以便使从 Kotlin 和 Java 中的注释生成的代码可用于 Kotlin 编译器,它在 javac 之前 运行s。
由于 Kapt 处理 Kotlin 和 Java 文件中的注释,因此对于 Kotlin + Java 项目,推荐使用它来处理 Java 中的注释。
这个问题的原因是下一个:我一直在使用这个library来使类在Java中可打包,我决定将所有模型迁移到kotlin 类。
阅读一些文档后我意识到我需要使用 KAPT 而不是 "annotationProcessor"。
问题:后来当我尝试 运行 该应用程序时,我开始遇到 Dagger 2 和 Butterknife 的问题,它们在处理 "annotationProcessor" 时使用 JAVA 类,不是 Kotlin 类。为了让事情重新开始,我不得不在我的 gradle 文件中为每个 "annotationProcessor" 添加一个新行,但使用 "kapt" 代替。
所以我的问题是:如果使用这些框架所涉及的代码是纯粹的 java 类,我真的需要这样做吗?如果我需要这样做,你能解释一下原因吗?
感谢您抽出宝贵时间阅读本文!
是的,你需要这样做。
将 Kapt 添加到项目后,它会完全接管注释处理,因此 Java 编译任务不会 运行 任何注释处理器。这是必要的,以便使从 Kotlin 和 Java 中的注释生成的代码可用于 Kotlin 编译器,它在 javac 之前 运行s。
由于 Kapt 处理 Kotlin 和 Java 文件中的注释,因此对于 Kotlin + Java 项目,推荐使用它来处理 Java 中的注释。