Android Studio编译项目时报错unable to find valid certification path to requested target

当AndroidStudio在编译项目时遇到Unabletofindvalidcertificationpathtorequestedtarget错误,通常是由于访问HTTPS的maven/jcenter仓库时证书问题导致。这可能是由于代理服务器中间人攻击,替换了服务器证书。解决方法包括下载证书,将其导入Java的cacerts文件中,使用keytool命令添加或更新证书,并重新编译项目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android studio编译程序时报错unable to find valid certification path to requested target,如下

在这里插入图片描述
此问题通常是在访问maven/jcenter依赖库的网站(https的)时,证书被替换了,然后导致的。
为什么证书会被替换?可能的原因是,代理服务器作为中间人,在https传输过程中,将服务器的证书替换了,然后就可以监听https的流量了。

解决方法:将证书添加到 cacerts 中
cacerts包含了很多CA证书,位置在Java的安装目录:『Java\jdk1.8.0_65\jre\lib\security\cacerts』

1.查看项目级别build.gradle文件里buildscript和allprojects里面配置了哪些依赖库网站
在这里插入图片描述
2.登录jcenter和jitpack网站下载证书,分别命名为bintray.com.cer和jitpack.io.cer,保存到C:\develop\Java\jdk1.8.0_65\jre\lib\security目录下

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.在security目录下执行命令

keytool -importcert -alias bintray.com -file bintray.com.cer -keystore cacerts -storepass changeit

执行此命令会提示你是否信任此证书,输入yes,回车。然后证书就加入cacerts中了。部分log如下:

Trust this certificate? [no]:  yes
Certificate was added to keystore

执行命令完成后回显示“certificate added".表示成功导入,
然后重复操作一次添加jitpack.io.cer证书
这时重新编译项目,即可成功

若提示证书已经存在,可先删除原有证书,再执行导入命令

keytool -delete -alias bintray.com -keystore cacerts -storepass changeit
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值