Qt Creator 5.12.12调试Android应用时Gradle无法识别Java 21.0.2版本
Qt Creator 5.12.12构建Android应用失败:无法从'21.0.2'确定Java版本
环境信息
- Qt Creator版本:5.12.12
- Android SDK版本:12.0
- Android NDK版本:21.3.6528147
- Gradle版本:8.3
- JVM版本:21.0.2(Oracle Corporation 21.0.2+13-LTS-58)
- 操作系统:Linux 6.5.0-17-generic amd64
错误信息
:-1: error: Build failed with an exception.
问题原因:无法从'21.0.2'确定Java版本。
建议操作:使用--stacktrace选项获取堆栈跟踪;使用--info或--debug选项获取更多日志输出;使用--scan选项获取完整分析信息。
解决方案
Qt 5.12.12属于较旧版本,其默认集成的Android Gradle插件版本不支持Java 21(版本号解析逻辑不兼容),以下是可行的解决方法:
方法1:降级JDK到兼容版本
Qt 5.12.x官方推荐JDK 8或JDK 11,这两个版本能被旧版Gradle插件正确识别:
- 下载并安装OpenJDK 8/11
- 在Qt Creator中配置JDK路径:
- 打开
工具 > 选项 > 设备 > Android - 在
JDK位置处选择新安装的JDK 8/11路径
- 打开
- 重启Qt Creator后重新构建项目
方法2:调整Gradle插件与Java兼容性配置
若需保留JDK 21,可手动修改项目Gradle配置:
- 打开项目根目录下的项目级
build.gradle文件,修改Android Gradle插件版本为支持Java 21的最低兼容版本(如7.4.2):buildscript { repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:7.4.2' } } - 打开模块级
build.gradle文件,添加Java兼容性配置:
注:Qt 5.12.x对高版本Gradle插件可能存在兼容性问题,此方法需测试验证android { compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } }
方法3:降级Gradle版本到适配Qt 5.12的版本
Qt 5.12.x推荐Gradle 5.6.4或6.7.1,这类版本对Java版本的识别逻辑更适配旧版JDK:
- 下载对应版本的Gradle
- 在Qt Creator中配置Gradle路径:
- 打开
工具 > 选项 > 构建和运行 > Gradle - 选择
使用本地Gradle分发,指定下载的Gradle路径
- 打开
- 同时确保JDK版本为8/11,避免版本不匹配
注意事项
- Qt 5.12.12已停止官方维护,长期来看建议升级到Qt 6.x版本,以获得更好的Android和Java新版本支持
- 修改Gradle配置后,建议删除项目的
.gradle和build目录,重新构建避免缓存问题
内容的提问来源于stack exchange,提问作者Qtansroid
相关产品推荐
相关产品推荐

