kim*_*vin 19 android kotlin build.gradle
什么是generateStubsKotlin?这是我的配置build.gradle.
我在公共文档中找不到它:http://kotlinlang.org/docs/reference/kapt.html
kapt {
generateStubs = true
}
Run Code Online (Sandbox Code Playgroud)
如果我正在使用Java并且Kotlin(1.2)在我的项目中,仍然需要添加?
Dip*_* s. 20
编辑:
如果我在我的项目中使用Java和Kotlin(1.2),仍然需要添加
不,随着1.0.4版本引入了注释处理API的新实验实现.现在有没有必要配置此generateStubs在build.gradle.
build.gradle如果要启用它,请将以下内容添加到您的中:
apply plugin: 'kotlin-kapt'
Run Code Online (Sandbox Code Playgroud)
您还必须从中删除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
}
Run Code Online (Sandbox Code Playgroud)
这是如何工作的:
Stubs,编译器生成的中间类,允许从Kotlin引用"生成的"源,否则编译器将无法引用缺少的源.
生成的源是"build/generated/source/kapt/main"在" build" 下创建的,通常从IntelliJ的项目源中排除,此源根目录将在构建脚本本身中标记.
sourceSets {
main.java.srcDirs += [file("$buildDir/generated/source/kapt/main")]
}
Run Code Online (Sandbox Code Playgroud)
示例:
Dagger2-Kotlin(1.1.50)注释处理器的示例支持Gradle构建
| 归档时间: |
|
| 查看次数: |
4368 次 |
| 最近记录: |