当前位置: 首页 > 知识库问答 >
问题:

使用Java和Kotlin文件的Android项目,kapt还是annotationProcessor?

颛孙兴旺
2023-03-14

我想知道在混合Java和Kotlin文件的Android项目中,我们是否必须使用annotationProcessor或kapt,或者两者都用?

在我的理解中,处理器必须用于使用代码生成注释的Java文件,而kapt必须用于使用代码生成注释的静态编程语言文件

我有一个混合两种语言的项目,我刚刚用kapt替换了build.gradle中所有的annotationProcessor依赖项。令人惊讶的是,它可以正常构建和运行,但是我不明白为什么kapt甚至可以很好地处理Java文件...

有人能给我解释一下吗?

谢谢你

共有2个答案

陶腾
2023-03-14

在Java中,您可以指定annotationProcessor(或apt)依赖项,如下所示:

dependencies {
  ...
  annotationProcessor "com.google.dagger:dagger-compiler:$dagger-version"
}

在Kotlin中,您必须添加<code>Kotlin kapt

apply plugin: 'kotlin-kapt' //Must include
dependencies {
    ...
    kapt "com.google.dagger:dagger-compiler:$dagger-version"
}

这就是全部!注意,kapt负责处理Java文件和kotlin文件,因此不需要保留annotationProcessor依赖关系。

更多详情:链接

东郭弘
2023-03-14

首先,Kotlin注释处理工具(kapt)使用Java编译器运行注释处理器。如果您的项目包含任何Java类,kapt会通过设计来处理它们。Kotlinlang建议使用kapt以防您以前使用Android支持中的annotationProcessor

JetBrains有一篇关于kapt如何更详细地工作的好文章,它来自2015年,但最新。

 类似资料:
  • 我正在使用Kotlin,kapt和Android架构组件。当我构建项目时,一切似乎都很好,但在试图在设备/模拟器上运行应用程序后,Gradle的:Assemble任务抛出以下错误: 警告:警告:注释处理器“Android.arch.persistence.room.RoomProcessor”支持的源版本“release_7”小于-source“1.8” 更新 模块构建。在此处分级 项目生成。gr

  • 我正在做一个静态编程语言Java混合项目。 Gradle版本和插件最近分别升级到3.1.3和4.4。 现在,在编译时,我在一些Kotlin文件中发现了一个错误“未解析引用”。 例如:- 在上面的代码得到编译错误在android. r.id.home作为未解决的参考。 也在 在查找“removeOnGlobalLayoutListener”时获取“unresolved reference”错误 这件

  • 我在Android studio中创建了一个Android应用程序,并使用Kotlin作为编程语言 现在我的应用程序完成了,我想构建我的应用程序,但构建应用程序后,我的APK文件大小变为35mb<我的可绘制文件夹大小是2mb,我没有任何大文件,但为什么我的应用程序大小是35mb?! 为了生成测试apk版本,我使用了构建- 但是当我使用java语言时,这个大小是7mb!!! 我使用了这些依赖项: 我

  • 我想在我的应用程序中实现autolinktextview。github中有一个库,现在我想在我的应用程序中使用,但库语言是kotlin,我的应用程序项目语言是java。下面给出的库Url和我使用的依赖项。 https://github.com/armcha/AutoLinkTextViewV2

  • 问题内容: 我对Gradle(和Java 9,说实话)还很陌生,并且我正在尝试使用Gradle构建一个简单的库项目,该项目混合了Java 9和Kotlin。更详细地讲,在Java中有一个接口,在Kotlin中有一个实现。我会在Kotlin中做所有事情,但是无论如何都是Java,所以我决定采用这种方式。 我建立在IntelliJ Idea的基础上,外部定义了1.2.0 kotlin插件和gradle

  • 我已经将我们的一个Android项目从旧的Groovy和和。 虽然“它在我的机器上工作”——特别是:我从Groovy转换为静态编程语言的原始项目在其原始目录下工作正常——但我所有的同事在克隆回购时都无法打开该项目。重要的是,当我克隆回购到其他目录时,我也不能自己打开项目(在同一台机器上安装相同的AS)。所以,我怀疑有一些额外的细节丢失在一些配置文件,但我似乎无法找出哪个... 详情: 当我只使用