首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android Studio Artic Fox和Kotlin JVM Target -8 vs 11

Android Studio Artic Fox和Kotlin JVM Target -8 vs 11
EN

Stack Overflow用户
提问于 2021-08-07 08:44:15
回答 2查看 3.6K关注 0票数 15

Android内置的JRE是11版。Artic Fox允许使用Java 11编译项目:

代码语言:javascript
运行
复制
compileOptions {
    sourceCompatibility JavaVersion.VERSION_11
    targetCompatibility JavaVersion.VERSION_11
}

但我们也有Kotlin的选择

代码语言:javascript
运行
复制
kotlinOptions {
    jvmTarget = JavaVersion.VERSION_1_8
}

我们现在应该设置哪个JVM目标版本?

jvmTarget = JavaVersion.VERSION_1_8jvmTarget = JavaVersion.VERSION_11

Kotlin库使用JDK 8:

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

kotlin-stdlib-jdk11还不存在

接下来的所有配置都适用于Artic:

#1

代码语言:javascript
运行
复制
compileOptions {
    sourceCompatibility JavaVersion.VERSION_11
    targetCompatibility JavaVersion.VERSION_11
}
kotlinOptions {
    jvmTarget = JavaVersion.VERSION_11
}

#2

代码语言:javascript
运行
复制
compileOptions {
    sourceCompatibility JavaVersion.VERSION_11
    targetCompatibility JavaVersion.VERSION_11
}
kotlinOptions {
    jvmTarget = JavaVersion.VERSION_1_8
}

#3

代码语言:javascript
运行
复制
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
    jvmTarget = JavaVersion.VERSION_1_8
}

但我们应该选择什么呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-03 03:10:15

如果您使用的是2020.3.1,首选是首选。

代码语言:javascript
运行
复制
compileOptions {
    sourceCompatibility JavaVersion.VERSION_11
    targetCompatibility JavaVersion.VERSION_11
}

kotlinOptions {
    jvmTarget = JavaVersion.VERSION_11
}

现在进入,您可以使用jdk8版本。

代码语言:javascript
运行
复制
 implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

kotlin-stdlib- JDK 8库与JDK11SDK完全兼容。

或者,对于仅Kotlin的项目,您也可以忽略kotlin-stdlib-jdk8 8依赖项,因为Gradle插件将在编译期间自动添加必要的库源。

票数 13
EN

Stack Overflow用户

发布于 2021-10-30 21:56:29

根据当前的文档,使用java 8:

代码语言:javascript
运行
复制
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。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68690779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档