无法将使用 JVM 目标 1.8 构建的字节码内联到使用 JVM 目标 1.6 构建的字节码中
Posted
技术标签:
【中文标题】无法将使用 JVM 目标 1.8 构建的字节码内联到使用 JVM 目标 1.6 构建的字节码中【英文标题】:Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6 【发布时间】:2018-08-05 22:12:56 【问题描述】:当尝试通过 IntelliJ 运行示例 CorDapp (GitHub CorDapp) 时,我收到以下错误:
无法将使用 JVM 目标 1.8 构建的字节码内联到 使用 JVM 目标 1.6 构建
如何修改 IntelliJ 设置,以便所有字节码都使用相同的 JVM 目标构建?
【问题讨论】:
我能够通过将此库添加到build.gradle
dependencies compile("org.jetbrains.kotlin:kotlin-stdlib-jdk8") 来解决这个问题
@MunishChandel 这还不够。我们还必须按照以下答案的建议...
在 Linux 上指定 jvmTarget = "15" 时出现相同的错误,但同一项目在 Windows 上运行,两者都在 IntelliJ 2020.3 上。更改为 jvmTarget = "14" 并且它对两者都有效。无论哪种情况,命令行都没有错误,仅在 IntelliJ 中。
【参考方案1】:
这有助于我的项目构建,将其添加到模块 build.gradle 文件中:
compileOptions
sourceCompatibility 1.8
targetCompatibility 1.8
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all
kotlinOptions
jvmTarget = "1.8"
【讨论】:
【参考方案2】:如果以上答案都不起作用,您可以在 kotlin dsl 中执行此操作
android
...
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>
kotlinOptions
jvmTarget = "1.8"
【讨论】:
【参考方案3】:只需在 build.gradle 模块中添加此代码kotlinOptions jvmTarget = '1.8'
【讨论】:
这在许多其他答案中已经提到过。【参考方案4】:我做了所有步骤但没有成功问题是
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'
问题已解决
【讨论】:
重建我的项目后,它会显示此错误消息“Compose 编译器的此版本 (1.0.3) 需要 Kotlin 版本 1.5.30,但您似乎使用的是 Kotlin 版本 1.4.32,而这不是已知兼容。请修复您的配置(或suppressKotlinVersionCompatibilityCheck
,但不要说我没有警告您!)。”以上是关于无法将使用 JVM 目标 1.8 构建的字节码内联到使用 JVM 目标 1.6 构建的字节码中的主要内容,如果未能解决你的问题,请参考以下文章