当试图通过IntelliJ运行示例CorDapp (GitHub CorDapp)时,我收到以下错误:
不能将使用JVM目标1.8构建的字节码内联为当前的字节码 使用JVM目标1.6构建
如何修改IntelliJ设置,使所有字节码都使用相同的JVM目标构建?
当试图通过IntelliJ运行示例CorDapp (GitHub CorDapp)时,我收到以下错误:
不能将使用JVM目标1.8构建的字节码内联为当前的字节码 使用JVM目标1.6构建
如何修改IntelliJ设置,使所有字节码都使用相同的JVM目标构建?
当前回答
我使用Kotlin和Gradle进行正常的JVM开发,(不是android),这在build.gradle中为我工作:
allprojects {
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
kotlinOptions.jvmTarget = JavaVersion.VERSION_11.toString()
}
}
其他回答
如果您有很多源集/模块,那么为每个源集/模块分别配置jvmTarget会很麻烦。
你可以为所有这些对象一次性配置jvmTarget,如下所示:
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
jvmTarget = "1.8"
}
}
这个片段可以用在你的gradle的顶层。构建文件
修改gradle文件后,重新导入所有gradle导入。 要检查它是否工作,请打开Project Structure并验证IntelliJ是否正确地将JVM 1.8分配给所有Kotlin-Modules。它应该是这样的:
我不建议直接在IntelliJ中更改平台,因为任何第一次克隆您的项目的人都可能面临同样的问题。在gradle中正确配置它的好处是,IntelliJ从一开始就能正确地为它们工作。
我通过导航到gradle来解决这个问题。构建文件,并更新kotlin插件版本。
对我来说,最初的配置是:
plugins {
id 'org.jetbrains.kotlin.android' version '1.6.10' apply false
}
所以我把插件的版本改成了最新版本:
plugins {
id 'org.jetbrains.kotlin.android' version '1.7.10' apply false
}
在我的例子中,我通过以下两个步骤解决了这个问题
1. Go to android studio preferences -> other settings -> kotlin compiler -> set Target JVM version = 1.8
if it doesn't work then go to the second option.
2. In your module-level build.gradle file add
compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
jvmTarget = "1.8"
}
}
如果在Spring Boot/Kotlin项目中遇到这个消息,只需在pom.xml中将属性“Kotlin .compiler. jvmtarget”设置为“1.8”。
<properties>
<kotlin.version>1.3.70</kotlin.version>
<kotlin.compiler.jvmTarget>1.8</kotlin.compiler.jvmTarget>
</properties>
...
请将此代码添加到app/build.gradle中的android部分
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8
}