当试图通过IntelliJ运行示例CorDapp (GitHub CorDapp)时,我收到以下错误:

不能将使用JVM目标1.8构建的字节码内联为当前的字节码 使用JVM目标1.6构建

如何修改IntelliJ设置,使所有字节码都使用相同的JVM目标构建?


当前回答

请将此代码添加到app/build.gradle中的android部分

compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = JavaVersion.VERSION_1_8
    }

其他回答

在我的例子中,jvmTarget已经在构建中设置了。Gradle文件如下。

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

但我的问题依然存在。 最后,在Preferences > Other Settings > Kotlin Compiler >目标JVM版本后,将目标JVM版本从1.6更改为1.8。见附图,

我通过导航到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
}

您可以通过以下方法修复此问题:

打开IntelliJ首选项 去构建,执行,部署>编译器> Kotlin编译器但其他设置> Kotlin编译器如果Android Studio > 3.4 将目标JVM版本更改为1.8 单击Apply

正如在Kotlin网站的using-maven文档中所写的:

你只需要把<kotlin.compiler.jvmTarget>1.8</kotlin.compiler.jvmTarget>放到pom.xml的属性部分

2020年2月 android 3.4 + 去文件->设置-> Kotlin编译器->目标JVM版本>设置为1.8,然后确保做文件->同步项目与Gradle文件 或者将此添加到android block中的build.gradle(module:app):

kotlinOptions {
           jvmTarget = "1.8"
         }