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

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

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


当前回答

对于Kotlin语言的Gradle (*. Gradle。KTS文件),添加这个:

android {
    [...]
    kotlinOptions {
        this as KotlinJvmOptions
        jvmTarget = "1.8"
    }
}

其他回答

对于最近版本的Android Studio,如果仅仅更改Kotlin Target VM版本不工作。

文件➞项目结构➞模块(app):将“源兼容性”和“目标兼容性”设置为“1.8 (Java 8)”。按“OK”并将项目与Gradle同步。

在我的例子中,只是像这样更改目标JVM版本:File > Setting > Kotlin Compiler > Target JVM Version > 1.8并没有帮助。但是,它解决了编译时错误。但在运行时失败。

我还必须在应用程序构建中添加以下内容。Gradle文件使它工作。

 android {
     // Other code here...
     kotlinOptions {
        jvmTarget = "1.8"
     }
 }

如果以上答案都无效,您可以在kotlin dsl中执行此操作

android {
...

    tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
        kotlinOptions {
            jvmTarget = "1.8"
        }
    }
}

我使用Kotlin和Gradle进行正常的JVM开发,(不是android),这在build.gradle中为我工作:

allprojects {
    tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
        kotlinOptions.jvmTarget = JavaVersion.VERSION_11.toString()
    }
}

我做了所有的步骤,但没有成功,问题是

implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.4.32'

当我更新到

implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.5.30'

显示了这个问题,当我回到

implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.4.32'

问题解决了