gpt4 book ai didi

android - Kotlin 中的 generateStubs 配置是什么?

转载 作者:IT老高 更新时间:2023-10-28 13:29:54 35 4
gpt4 key购买 nike

什么是 Kotlin 的 generateStubs?这是我在 build.gradle 中的配置。

我在这里的公共(public)文档中找不到它:http://kotlinlang.org/docs/reference/kapt.html

kapt {
generateStubs = true
}

如果我的项目中使用了JavaKotlin(1.2),还需要添加吗?

最佳答案

编辑:

If I'm using Java and Kotlin(1.2) in my project, it is still needed toadd

,在 1.0.4 版本中引入了注解处理 API 的新实验性实现。现在不需要在build.gradle中配置这个generateStubs了。

如果您想启用它,请将以下内容添加到您的 build.gradle:

apply plugin: 'kotlin-kapt' 

您还必须从 build.gradle

中删除 generateStubs 配置

但是,作为您关于 generateStubs 详细信息的问题,我保留旧帖子的原样。



使用:

使用 kapt 和:generatestubs = true,以便使用像 dagger 2 或 dbflow 这样的库,这将使编译器能够生成 所需的 stub 类Java 和 Kotlin 之间的互操作性。除非启用 generateStubs = true,否则“bootstrap”(一个自定义注解处理器,传递给 javac,加载注解数据并调用其他注解处理器。) Java 代码需要引用生成的源。拉 from

注意:生成的代码总是在 Java 中,而不是在 Kotlin 中。


When to Include:

生成 stub 需要相对较多的工作,因为必须解析所有声明,有时了解返回类型需要分析表达式(= 符号后的函数体或属性初始化程序)。因此,在 kapt 中使用 stub 会稍微减慢您的构建速度。这就是为什么 stub 默认关闭的原因,要启用它们,您需要在 build.gradle 文件中编写以下内容:

kapt {
generateStubs = true
}

这是如何工作的:

stub ,编译器生成的中间类,允许从 Kotlin 引用“生成的”源,否则编译器将无法引用缺失的源。

生成的源代码是在 "build/generated/source/kapt/main" 中创建的,因为它通常在 "build"下从 IntelliJ 的项目源中排除,此源根将在构建脚本本身中标记。

sourceSets {
main.java.srcDirs += [file("$buildDir/generated/source/kapt/main")]
}

示例:

Dagger2-example with Kotlin (1.1.50) annotation processor support Gradle build

关于android - Kotlin 中的 generateStubs 配置是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47587126/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com