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

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

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


当前回答

在Android Studio 4.3.2中,通过下面的过程添加是无效的。

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

原因是,Android studio无法在模块级Gradle文件中添加以下代码。请手动添加。

kotlinOptions {
    jvmTarget = "1.8"
}

只是为了插件,在android studio搜索目标JVM版本。它会直接带您到选项。

其他回答

app / build.gradle

android {
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = JavaVersion.VERSION_1_8.toString()
    }
}

GL

使用Java 8语言特性

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

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'

问题解决了

在我的案例中,文件>设置> Kotlin编译器>目标JVM版本> 1.8

这有助于我的项目构建,将此添加到模块构建。gradle文件:

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

如果你在android项目中

在你的应用的build.gradle中 在android {}

android{
//other configs...
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = "1.8"
    }
}