【2019.9最新办法,好使】Android Studio Cause: unable to find valid certification path to requested target

运行程序发现一个很奇怪的异常:Cause: unable to find valid certification path to requested target。之前运行一直都没有问题,而且在我的电脑上报错之后,同样的程序在同事的电脑上也是可以正常运行的。试了很多种办法,最终安装证书之后解决了。

分以下几步:一、下载证书;二、导入证书;三、把证书拷贝到指定目录。

下面是具体方法。

一、下载证书

下载地址:https://download.csdn.net/download/wanghaifeng068/11805144

有五个证书,下载之后保存到本地。

二、导入证书

1、在开始菜单cmd,找到命令提示符

【2019.9最新办法,好使】Android Studio Cause: unable to find valid certification path to requested target_第1张图片

 2、在命令提示符上右键——>以管理员身份运行

【2019.9最新办法,好使】Android Studio Cause: unable to find valid certification path to requested target_第2张图片

3、进入到Java安装目录

我的目录是:D:\Program Files\Java\jdk1.8.0_191\jre\lib\security

【2019.9最新办法,好使】Android Studio Cause: unable to find valid certification path to requested target_第3张图片

4、执行如下命令

keytool -import -alias goo -keystore cacerts -file D://goo.cer

其中:

goo 是证书名,一共五个证书,需要分别执行

D://goo.cer 是证书路径,根据自己存放的路径修改

-alias 指定别名(推荐和证书同名)

-keystore 指定存储文件(此处固定)

-file 指定证书文件全路径(证书文件所在的目录)

注意:当切换到 cacerts 文件所在的目录时,才可指定 -keystore cacerts, 否则应该指定全路径;

此时命令行会提示你输入cacerts证书库的密码,敲入changeit即可,这是java中cacerts证书库的默认密码,当然也可自行修改。

5、库密钥口令输入:changeit

6、是否信任此证书?:Y

此证书导入成功。

7、五个证书全部导入

重复步骤4、5、6,把五个证书分别导入,可能会有部分证书提示已存在,提示已存在的就当也是导入成功了。

8、注意事项,可能遇到的问题

keytool 错误: java.io.FileNotFoundException: cacerts (拒绝访问)

出现这个问题的原因是:

Windows所有写、修改操作都是只有管理员权限才可以,所以会出现写、修改操作都会遭遇”拒绝访问”,解决方案:

使用管理员权限打开命令行

如何使用管理员权限打开命令行?参照第二步中的1、2两小步。

三、把证书拷贝到指定目录

五个证书都导入成功之后,把五个证书都拷贝到Android Studio的安装目录下的security文件夹下,

我的路径:D:\Program Files\Android\Android Studio\jre\jre\lib\security,各位根据自己的安装路径,拷贝到指定位置。

重新运行Android Studio,基本上可以成功搞定。

 

附:如果上述操作还是不行

可以将gradle中的jcenter()修改为:

jcenter{
            url 'http://jcenter.bintray.com'
        }

你可能感兴趣的:(Android)