一、编译配置
1、Android中的配置
使用如下方式开启在Android中的gradle的kotlin编译配置:
该配置在其余平台不可用
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = '1.8'
// freeCompilerArgs.add("-Xexport-kdoc")
setFreeCompilerArgs(["-Xcontext-receivers"])
//setFreeCompilerArgs(["-Xexport-kdoc","-Xcontext-receivers","-opt-in=org.mylibrary.OptInAnnotation"])
}
//如下方式会报错
//tasks.withType(KotlinCompile::class).all {
// kotlinOptions.freeCompilerArgs = listOf("-Xcontext-receivers")
//}
...
}
以上配置会开启Kotlin/JVM 的上下文接收者原型功能,否则该功能不可用,开启后编码可以使用以下代码:
interface LoggingContext {
val log: Logger // This context provides a reference to a logger
}
context(LoggingContext)
fun startBusinessOperation() {
// You can access the log property since LoggingContext is an implicit receiver
log.info("Operation has started")
}
fun test(loggingContext: LoggingContext) {
with(loggingContext) {
// You need to have LoggingContext in a scope as an implicit receiver
// to call startBusinessOperation()
startBusinessOperation()
}
}
传递参数的发过誓可以直接在里面写setFreeCompilerArgs(["-opt-in=org.mylibrary.OptInAnnotation"])
文章来源:https://www.toymoban.com/news/detail-724210.html
2、其余平台的配置
除了上述配置还可以使用以下配置,该配置可以在其余平台使用:文章来源地址https://www.toymoban.com/news/detail-724210.html
android {
}
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
kotlinOptions {
jvmTarget = '1.8'
apiVersion = '1.1'
languageVersion = '1.1'
}
}
二、参考链接:
- Kotlin 1.6.20 的新特性
- Kotlin Gradle plugin 中的编译器选项
- IDE highlighting: False positive error “Context receivers should be enabled explicitly”
- compileKotlin block in build.gradle file throws error “Could not find method compileKotlin() for arguments […]”
到了这里,关于android中gradle的kotlin编译配置选项的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!