当试图通过IntelliJ运行示例CorDapp (GitHub CorDapp)时,我收到以下错误:
不能将使用JVM目标1.8构建的字节码内联为当前的字节码 使用JVM目标1.6构建
如何修改IntelliJ设置,使所有字节码都使用相同的JVM目标构建?
当试图通过IntelliJ运行示例CorDapp (GitHub CorDapp)时,我收到以下错误:
不能将使用JVM目标1.8构建的字节码内联为当前的字节码 使用JVM目标1.6构建
如何修改IntelliJ设置,使所有字节码都使用相同的JVM目标构建?
当前回答
设置sourceCompatibility = javaverse。VERSION_1_8启用了糖化,但它目前无法糖化Kotlin编译器使用的所有Java 8特性。
修复-设置kotlinOptions。jvmTarget到javaverse。应用模块Gradle中的VERSION_1_8会修复这个问题。
使用Java 8语言特性: https://developer.android.com/studio/write/java8-support
android {
...
// Configure only for each module that uses Java 8
// language features (either in its source code or
// through dependencies).
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
// For Kotlin projects
kotlinOptions {
jvmTarget = "1.8"
}
}
其他回答
如果使用Visual Studio Code**与Kotlin扩展,进入插件管理Crtl + Shift + x,输入Kotlin,然后点击管理(小齿轮)>>配置扩展设置
on Kotlin >> Compiler >> Jvm:目标-键入java版本。在我的情况下,只输入1.8
然后重新启动:-)
** vscode或只是Linux的“代码”
我使用Kotlin和Gradle进行正常的JVM开发,(不是android),这在build.gradle中为我工作:
allprojects {
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
kotlinOptions.jvmTarget = JavaVersion.VERSION_11.toString()
}
}
您可以通过以下方法修复此问题:
打开IntelliJ首选项 去构建,执行,部署>编译器> Kotlin编译器但其他设置> Kotlin编译器如果Android Studio > 3.4 将目标JVM版本更改为1.8 单击Apply
如果以上答案都无效,您可以在kotlin dsl中执行此操作
android {
...
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
kotlinOptions {
jvmTarget = "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
}