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

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

Android Studio编译项目时报错unable to find valid certification path to requested target_第1张图片
此问题通常是在访问maven/jcenter依赖库的网站(https的)时,证书被替换了,然后导致的。
为什么证书会被替换?可能的原因是,代理服务器作为中间人,在https传输过程中,将服务器的证书替换了,然后就可以监听https的流量了。

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

1.查看项目级别build.gradle文件里buildscript和allprojects里面配置了哪些依赖库网站
Android Studio编译项目时报错unable to find valid certification path to requested target_第2张图片
2.登录jcenter和jitpack网站下载证书,分别命名为bintray.com.cer和jitpack.io.cer,保存到C:\develop\Java\jdk1.8.0_65\jre\lib\security目录下

Android Studio编译项目时报错unable to find valid certification path to requested target_第3张图片
Android Studio编译项目时报错unable to find valid certification path to requested target_第4张图片
Android Studio编译项目时报错unable to find valid certification path to requested target_第5张图片
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

你可能感兴趣的:(android,studio,android,ide)