Unity 2021.3.24f1构建Android项目Gradle证书路径错误求助
Unity 2021.3.24f1打包Android Gradle构建失败(PKIX证书错误)解决方案
核心问题:从jcenter拉取
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72等依赖时触发sun.security.validator.ValidatorException,本质是Java环境无法验证jcenter的SSL证书,与Gradle版本无关(所以更换版本无效)
解决方案
1. 替换jcenter仓库为维护中的镜像
jcenter已停止维护,优先替换为mavenCentral或国内镜像:
- 在Unity编辑器中开启自定义Gradle模板:
Player Settings > Publishing Settings > Build,勾选Custom Gradle Template和Custom Launcher Gradle Template - 打开生成的
mainTemplate.gradle和launcherTemplate.gradle文件,将所有jcenter()替换为:mavenCentral() // 或国内阿里云镜像(推荐网络不佳时使用) maven { url 'https://maven.aliyun.com/repository/public' } - 保存后重新触发构建
2. 手动导入jcenter证书到Java信任库
如果必须使用jcenter,需将其SSL证书导入Unity使用的Java环境:
- 用浏览器访问
https://jcenter.bintray.com,点击地址栏锁图标,导出DER格式的证书 - 找到Unity配置的Java路径(从外部工具配置截图获取),执行以下命令(默认cacerts密码为
changeit):# Windows(需管理员权限) keytool -import -alias jcenter -keystore "你的Java路径/jre/lib/security/cacerts" -file "导出的证书文件路径" # Mac/Linux sudo keytool -import -alias jcenter -keystore "你的Java路径/jre/lib/security/cacerts" -file "导出的证书文件路径"
3. 排查网络代理/防火墙干扰
公司网络的代理或防火墙可能拦截SSL证书:
- 尝试关闭系统代理后重新构建
- 若必须使用代理,在
gradle.properties中添加代理配置:systemProp.http.proxyHost=你的代理IP systemProp.http.proxyPort=代理端口 systemProp.https.proxyHost=你的代理IP systemProp.https.proxyPort=代理端口
4. 切换回Unity内置的JDK与Gradle
自定义JDK/Gradle可能存在证书信任问题,切换到Unity内置环境:
- 在
Edit > Preferences > External Tools中,将JDK、Gradle均设置为Embedded JDK和Embedded Gradle - 清理之前的构建缓存(
File > Build Settings > Clean Build)后重新打包
内容的提问来源于stack exchange,提问作者mudyro
相关产品推荐
相关产品推荐

