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

如何解决Unciv项目中':buildSrc:compileKotlin'任务执行失败的错误?

解决Unciv编译时“Unknown Kotlin JVM target: 21”错误的方法

核心问题分析

该错误是因为当前Gradle使用的JDK版本不支持Kotlin指定的JVM Target 21,或者项目配置的target版本与本地JDK不匹配。以下是具体解决步骤:


步骤1:确认本地JDK版本

先检查当前系统安装的JDK版本,确保版本支持目标JVM版本(若要使用target 21,需安装JDK 21及以上;若降级target,需对应匹配的JDK):

java -version
javac -version

步骤2:修改项目Kotlin编译配置

错误出现在:buildSrc:compileKotlin任务,需同时修改主项目和buildSrc模块的配置:

1. 主项目配置(根目录下的build.gradle.kts或build.gradle)

  • 若使用Kotlin DSL(.kts):
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
    kotlinOptions {
        // 改为你本地JDK支持的版本,比如17或21
        jvmTarget = "17"
    }
}
  • 若使用Groovy DSL(.gradle):
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile) {
    kotlinOptions {
        jvmTarget = "17"
    }
}

2. buildSrc模块配置(buildSrc/build.gradle.kts或buildSrc/build.gradle)

  • Kotlin DSL示例:
plugins {
    `kotlin-dsl`
}

kotlin {
    jvmToolchain {
        // 匹配本地JDK版本
        languageVersion.set(JavaLanguageVersion.of(17))
    }
}

或者直接指定jvmTarget:

tasks.withType<KotlinCompile> {
    kotlinOptions.jvmTarget = "17"
}

步骤3:强制Gradle使用指定JDK

如果Gradle仍指向错误JDK,可通过以下方式强制指定:

  1. 永久配置:在项目根目录的gradle.properties中添加:
org.gradle.java.home=/path/to/your/jdk

(Linux下典型路径如/usr/lib/jvm/java-21-openjdk-amd64,根据实际安装路径修改)

  1. 临时指定:执行编译命令时附加参数:
./gradlew desktop:dist -Dorg.gradle.java.home=/path/to/your/jdk

步骤4:清理缓存重新编译

清理Gradle缓存,避免旧配置干扰:

./gradlew clean
rm -rf .gradle

之后重新执行编译命令:

./gradlew desktop:dist

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 09:12:40