You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JDK版本为17却报Unknown Kotlin JVM target:21,构建失败如何解决?

解决"Unknown Kotlin JVM target: 21"构建错误

问题根源

你的项目(或依赖的assets_audio_player_web模块)指定了Kotlin JVM目标版本为21,但当前环境存在两处不匹配:

  • 所用Kotlin版本未支持JVM 21(Kotlin 1.9.0及以上才正式支持JVM 21)
  • 当前使用的JDK 17无法编译目标版本为21的代码(编译高版本目标需要对应版本的JDK工具链)

解决方案

方案1:将JVM目标版本降级到17(最适配当前JDK环境)

修改项目及模块的构建配置,将Kotlin编译的JVM目标统一设置为17:

  1. 打开项目根目录的build.gradle(或build.gradle.kts),找到Kotlin配置块:
    // Groovy DSL 示例
    kotlin {
        jvmToolchain(17)
        compilerOptions {
            jvmTarget.set(JvmTarget.JVM_17)
        }
    }
    
    // Kotlin DSL 示例
    kotlin {
        jvmToolchain(17)
        compilerOptions {
            jvmTarget.set(JvmTarget.JVM_17)
        }
    }
    
  2. 检查assets_audio_player_web模块的build.gradle文件,确保没有单独设置jvmTarget为21,如有则修改为17。
  3. 同步项目并重新构建。

方案2:升级Kotlin版本+JDK版本(需保留JVM 21目标时使用)

如果业务需要必须使用JVM 21作为目标版本,需完成以下两步:

  1. 升级Kotlin到支持JVM 21的版本
    在根build.gradle中更新Kotlin插件版本至1.9.0及以上:
    // Groovy DSL 示例
    plugins {
        id 'org.jetbrains.kotlin.jvm' version '1.9.20' apply false
    }
    
    // Kotlin DSL 示例
    plugins {
        kotlin("jvm") version "1.9.20" apply false
    }
    
  2. 升级JDK到21版本
    下载并安装JDK 21,然后在项目构建配置中指定使用JDK 21工具链:
    kotlin {
        jvmToolchain(21)
        compilerOptions {
            jvmTarget.set(JvmTarget.JVM_21)
        }
    }
    
  3. 同步项目后重新构建。

方案3:调整依赖库配置

如果报错来自第三方依赖assets_audio_player_web:

  • 查看该库的最新版本,确认是否已适配JDK 17,如有则升级依赖版本;
  • 若该库强制要求JVM 21,需切换到其他兼容JDK 17的替代库,或采用方案2升级环境。

内容的提问来源于stack exchange,提问作者Armagan GOK

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 13:10:01