Windows环境下Qt Android应用构建时Gradle依赖解析失败求助
解决Qt Android编译时Gradle依赖解析失败(trustAnchors异常)
问题核心原因
java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty 异常本质是JDK的证书信任库(cacerts)为空或损坏,导致Gradle无法验证Maven仓库的SSL证书,进而无法下载com.android.tools.build:gradle:3.6.3依赖。
具体解决步骤
1. 检查Qt使用的JDK证书库
Qt Creator默认自带OpenJDK,路径通常为C:\Qt\Tools\OpenJDK\jdk-8u252-windows-x64(版本可能略有不同):
- 进入
jre\lib\security目录,查看cacerts文件大小,如果文件为空(0KB)或极小,说明证书库损坏。
2. 修复证书信任库
- 方案一:复制系统JDK的cacerts文件
如果你系统中安装了Java 8(Gradle 3.6.3要求Java 8),找到系统JDK路径(比如C:\Program Files\Java\jdk1.8.0_xxx),将jre\lib\security\cacerts复制到Qt自带JDK的对应目录,覆盖原文件。 - 方案二:重新导入根证书
打开命令提示符,执行以下命令(替换路径为你的Qt JDK路径):
输入默认密码keytool -importcert -alias globalroot -file "C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft\Windows\Certificates\Root" -keystore "C:\Qt\Tools\OpenJDK\jdk-8u252-windows-x64\jre\lib\security\cacerts"changeit完成导入。
3. 强制Gradle使用系统JDK
- 打开Qt Creator,进入
工具 > 选项 > 构建和运行 > Android,将JDK路径改为系统安装的Java 8路径(比如C:\Program Files\Java\jdk1.8.0_xxx)。 - 或者在项目的
gradle.properties文件中添加:org.gradle.java.home=C:/Program Files/Java/jdk1.8.0_xxx
4. 优化Gradle仓库配置
修改项目根目录的build.gradle,替换为国内镜像仓库,避免证书和网络问题:
buildscript { repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } } dependencies { classpath 'com.android.tools.build:gradle:3.6.3' } } allprojects { repositories { maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repository/jcenter' } mavenCentral() } }
5. 清理Gradle缓存
- 删除用户目录下的
.gradle文件夹(路径:C:\Users\你的用户名\.gradle)。 - 重启Qt Creator,重新编译项目,让Gradle重新下载依赖。
内容的提问来源于stack exchange,提问作者Alexander Zolkin
相关产品推荐
相关产品推荐

