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

Android插件打包JAR遇PKIX路径构建失败问题求助

Android插件打包JAR时PKIX证书路径错误的原因与解决方案

错误原因

  • 该错误属于Java SSL证书信任问题:打包过程中Gradle需要从远程Maven仓库下载依赖,但本地JDK的信任库(cacerts)未包含对应仓库的SSL证书,导致无法建立安全的HTTPS连接。
  • 网络环境限制:处于代理、防火墙或内网环境时,SSL证书可能被拦截、篡改,导致JDK无法验证证书的有效性。

解决方案

1. 手动导入仓库证书到JDK信任库(推荐生产环境使用)

  • 导出证书:用浏览器打开依赖仓库的HTTPS地址(如https://repo.maven.apache.org),点击地址栏的锁形图标,导出证书为Base64编码的.crt文件。
  • 定位信任库:找到本地JDK的cacerts文件,默认路径为JDK安装目录/jre/lib/security/cacerts(JRE环境则为JRE安装目录/lib/security/cacerts)。
  • 执行导入命令:打开终端,运行以下keytool命令(默认密码为changeit):
    keytool -import -alias maven_repo_cert -keystore "你的cacerts文件绝对路径" -file "导出的.crt文件路径"
    
    输入yes确认信任该证书即可。

2. 临时跳过SSL证书验证(仅测试场景使用)

在项目根目录的build.gradle中添加配置,强制Gradle忽略SSL验证:

allprojects {
    repositories {
        mavenCentral()
        // 其他仓库配置
    }
}

// 全局SSL信任配置
gradle.startParameter.systemProperties['javax.net.ssl.trustStore'] = '你的cacerts文件绝对路径'
gradle.startParameter.systemProperties['javax.net.ssl.trustStorePassword'] = 'changeit'

或在gradle.properties中添加:

systemProp.javax.net.ssl.trustStore=你的cacerts文件绝对路径
systemProp.javax.net.ssl.trustStorePassword=changeit

3. 排查网络环境

  • 关闭代理后重新执行打包,确认是否是代理拦截证书导致的问题。
  • 若处于公司内网,联系IT部门确认仓库地址的访问权限,或获取内网信任的证书导入JDK信任库。

4. 更新JDK版本

旧版本JDK的信任库可能缺少部分新根证书,升级到JDK 11及以上版本,通常可解决多数证书信任问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 15:52:10