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

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

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


当前回答

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

其他回答

如果你使用Eclipse,假设你下载了Kotlin插件:

右键单击项目->属性-> Kotlin Compiler ->启用项目特定设置-> JVM目标版本“1.8”

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

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

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

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

这里所有的答案都是使用gradle,但如果有人像我这样结束在这里,需要回答maven:

    <build>
        <sourceDirectory>src/main/kotlin</sourceDirectory>
        <testSourceDirectory>src/test/kotlin</testSourceDirectory>

        <plugins>
            <plugin>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-maven-plugin</artifactId>
                <version>${kotlin.version}</version>
                <executions>
                    <execution>
                        <id>compile</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>test-compile</id>
                        <phase>test-compile</phase>
                        <goals>
                            <goal>test-compile</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <jvmTarget>11</jvmTarget>
                </configuration>
            </plugin>
        </plugins>
    </build>

从jetbrains原型到kotlin-jvm的变化是<configuration></configuration>指定jvmTarget。就我而言

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

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