求助:无法直接构建libGDX示例项目libgdx-demo-invaders的问题
问题描述
无法构建libGDX官方示例项目,使用项目自带的Gradle 6.7.1执行以下命令时失败:
./gradlew --gradle-user-home D:\Java\.gradle core:compileJava
核心报错信息(翻译后)
Configuration on demand is an incubating feature.
Configure project :
警告:配置compile已过时,已被implementation和api替代,将在Android Gradle插件5.0版本中移除。Task :core:compileJava FAILED
构建失败,出现异常。
- 问题原因:
任务:core:compileJava执行失败。无法解析配置
:core:compileClasspath的所有文件。
无法解析com.badlogicgames.gdx:gdx:1.11.0,该依赖被:core项目引用。
未找到匹配的com.badlogicgames.gdx:gdx:1.11.0变体。当前构建配置要求寻找兼容Java 6的库API(优先class文件形式,依赖外部声明),但:
- VariantapiElements:声明为库API,打包为jar,依赖外部声明,但该组件兼容Java 7,与要求的Java 6不兼容。
- VariantjavadocElements:声明为文档组件,不符合库的需求,且未声明目标Java版本和元素形式。
- VariantruntimeElements:声明为库运行时,打包为jar,依赖外部声明,但该组件兼容Java 7,与要求的Java 6不兼容。
- VariantsourcesElements:声明为文档组件,不符合库的需求,且未声明目标Java版本和元素形式。
- 建议尝试:
使用--stacktrace选项获取堆栈跟踪;使用--info或--debug选项获取更多日志输出;使用--scan选项获取完整分析信息。本次构建使用了已废弃的Gradle特性,与Gradle 7.0不兼容。使用
--warning-mode all可查看单独的废弃警告。构建失败,耗时2秒,1个可执行任务已执行
解决方案
方案1:升级项目Java兼容版本到1.7
修改项目中相关build.gradle文件(根目录或core模块)的Java配置:
sourceCompatibility = 1.7 targetCompatibility = 1.7
同时检查Android模块的Java版本配置,确保统一为1.7及以上。
方案2:降级libGDX依赖版本
若无法升级Java版本,可将libGDX依赖降级到最后一个兼容Java 6的版本(如1.9.12),修改core模块build.gradle中的依赖声明:
implementation 'com.badlogicgames.gdx:gdx:1.9.12'
内容的提问来源于stack exchange,提问作者Eljah

