LibGDX Kotlin项目适配Java12:Gradle Wrapper升级失败排查
别慌,我来帮你一步步搞定这个问题——你遇到的并不是升级Gradle Wrapper的方式有误,而是LibGDX生成的旧版Gradle构建脚本和Gradle 5+的新语法不兼容,加上旧Gradle版本本身不支持Java12,才出现了这一连串错误。
问题拆解
第一个错误:Could not determine Java version from '12'
旧版本的Gradle(比如LibGDX初始化工具默认的版本)没有适配Java12的版本识别逻辑,所以必须升级到支持Java12的Gradle版本,你选择Gradle 5.3.1是完全正确的,这个版本确实兼容Java12。第二个错误:Could not get unknown property 'classesDir'
Gradle 4.10之后就废弃了classesDir这个属性,换成了classesDirectory,但LibGDX生成的默认构建脚本还在使用旧属性名,导致报错。
具体解决步骤
1. 修复classesDir属性错误
找到项目根目录下的build.gradle文件(注意不是各个子模块里的build.gradle),做以下替换:
- 把所有出现的
sourceSets.main.output.classesDir替换为sourceSets.main.output.classesDirectory - 把所有出现的
sourceSets.test.output.classesDir替换为sourceSets.test.output.classesDirectory
举个例子,原来的代码片段可能是这样:
// 旧代码示例 sourceSets.main.output.classesDir = new File(buildDir, 'classes/main') sourceSets.test.output.classesDir = new File(buildDir, 'classes/test')
修改后变成:
// 修改后的代码 sourceSets.main.output.classesDirectory = new File(buildDir, 'classes/main') sourceSets.test.output.classesDirectory = new File(buildDir, 'classes/test')
2. 替换废弃的依赖配置(可选但推荐)
Gradle 5+还废弃了compile、testCompile这些依赖配置,换成了implementation和testImplementation,为了避免后续潜在报错,你可以一并替换:
- 把所有
compile改成implementation - 把所有
testCompile改成testImplementation
3. 刷新Gradle项目
在IntelliJ里点击右上角Gradle面板的「Refresh all Gradle projects」按钮(就是大象图标旁边的刷新箭头),让IDE重新加载配置。
4. 确认IntelliJ的Java配置
确保IDE使用的是Java12:
- 打开「File → Project Structure → Project」
- 把「Project SDK」选择为Java12
- 「Project language level」选择「12」或者「SDK default」
验证配置
最后检查一下gradle-wrapper.properties里的distributionUrl是否正确,你当前的配置是没问题的:
distributionUrl=https\://services.gradle.org/distributions/gradle-5.3.1-bin.zip
这样操作之后,项目应该就能正常构建了。
内容的提问来源于stack exchange,提问作者Rolodophone

