Android内置的JRE是11版。Artic Fox允许使用Java 11编译项目:
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
但我们也有Kotlin的选择
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8
}
我们现在应该设置哪个JVM目标版本?
jvmTarget = JavaVersion.VERSION_1_8
或jvmTarget = JavaVersion.VERSION_11
Kotlin库使用JDK 8:
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
kotlin-stdlib-jdk11
还不存在
接下来的所有配置都适用于Artic:
#1
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_11
}
#2
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8
}
#3
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8
}
但我们应该选择什么呢?
发布于 2021-09-03 03:10:15
如果您使用的是2020.3.1,首选是首选。
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_11
}
现在进入,您可以使用jdk8版本。
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
kotlin-stdlib- JDK 8库与JDK11SDK完全兼容。
或者,对于仅Kotlin的项目,您也可以忽略kotlin-stdlib-jdk8 8依赖项,因为Gradle插件将在编译期间自动添加必要的库源。
发布于 2021-10-30 21:56:29
根据当前的文档,使用java 8:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8
}
(Java8支持)是无声的wrt。关于jvmTarget和Java 11。
Kotlin博士说,1.8是Kotlin1.5中的默认jvmTarget。
还要注意的是,在当前的2021.3.1修补程序3中创建一个基于Kotlin的新项目时,它会创建一个带有build.gradle 1.8的jvmTarget。
https://stackoverflow.com/questions/68690779
复制相似问题