作者:杨胤才_669 | 来源:互联网 | 2023-01-06 17:29
什么是generateStubs
Kotlin?这是我的配置build.gradle
.
我在公共文档中找不到它:http://kotlinlang.org/docs/reference/kapt.html
kapt {
generateStubs = true
}
如果我正在使用Java
并且Kotlin(1.2)
在我的项目中,仍然需要添加?
1> Dipali s...:
编辑:
如果我在我的项目中使用Java和Kotlin(1.2),仍然需要添加
不,随着1.0.4版本引入了注释处理API的新实验实现.现在有没有必要配置此generateStubs
在build.gradle
.
build.gradle
如果要启用它,请将以下内容添加到您的中:
apply plugin: 'kotlin-kapt'
您还必须从中删除generateStubs
配置build.gradle
但正如你关于generateStubs
我的详细信息的问题,我保留了我的旧帖子.
使用 :
使用kapt
:generatestubs = true
,以便使用像dagger 2或dbflow这样的库,这将使编译器能够生成Java和Kotlin之间的互操作性所需的存根类.除非generateStubs = true
被使能," bootstrap
"(自定义注解处理器,其被传递到javac
,装载注释数据并调用其他注释处理器.)是必需的Java代码来产生参考sources.pulled即从
注意:生成的代码始终Java
不在Kotlin
.
何时包括:
生成存根需要相对多的工作,因为必须解决所有声明,有时知道返回类型需要分析表达式(函数体或=
符号后的属性初始值设定项).因此,使用存根可以kapt
减慢构建速度.这就是默认关闭存根的原因,要启用它们,您需要在build.gradle
文件中编写以下内容:
kapt {
generateStubs = true
}
这是如何工作的:
Stubs,编译器生成的中间类,允许从Kotlin引用"生成的"源,否则编译器将无法引用缺少的源.
生成的源是"build/generated/source/kapt/main"
在" build
" 下创建的,通常从IntelliJ的项目源中排除,此源根目录将在构建脚本本身中标记.
sourceSets {
main.java.srcDirs += [file("$buildDir/generated/source/kapt/main")]
}
示例:
Dagger2-Kotlin(1.1.50)注释处理器的示例支持Gradle构建