Android架构师

内网Android Studio无法更新下载maven库(证书错

2022-03-14  本文已影响0人  安卓_背包客

在编辑Android Studio 时提示一下错误

Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:436)
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:384)
    at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect

显示无法同步

解决方法:

1.打开https://dl.google.com/dl/android/maven2

image.png

2.导出.cer 证书

image.png
image.png
image.png
image.png
image.png
image.png

使用CMD

3. 更新jdk中的cacerts证书

3.1将 .cer 中的公钥证书导入Android Studio中的cacerts,命令行下运行:

cd C:\Android\AndroidStudio\jre\lib\security
执行运行先备份cacerts:
copy /A/B cacerts cacerts.bk
后续运行,请先还原备份的cacerts:
copy /B/A cacerts.bk cacerts

3.2导入 .cer 文件到cacerts文件

....\bin\keytool.exe -import -keystore cacerts -file aliyun.cer
提示密码请输入: changeit
确认请输入 Y (如果是中文提示请输入: 是)
注:如果Android Studio设置使用系统JDK而不是它自带的JDK (AS默认使用自带JDK),可用同样的方式, 参照 1- 2 -3,将 .cer 中的公钥证书导入系统JDK中的cacerts,如:
cd C:\Program Files\Java\jdk-11.0.9\lib\security
copy /B /Y cacerts cacerts.bk // 后续运行先还原备份 copy /B /Y cacerts.bk cacerts
....\bin\keytool.exe -import -keystore cacerts -file aliyun.cer

如果 import 时提示“ 证书未导入, 别名 <mykey> 已经存在”,您可以执行....\bin\keytool.exe -import -keystore cacerts -file dlgg_210329.cer -alias third_party_ca
-alias third_party_ca的意思是为该证书起名为third_party_ca (或其它名称,与已有的不冲突就好)

tip: java 密钥库中的每个条目都由一个名为alias密钥标识。 对于给定的密钥库,它必须是唯一的。 如果您不提供,则keytool使用的默认值是mykey

重启Android Studio,点击工具类 sync gradle 图标,看看是否还会报同样的证书错误。

如果后续运行再次发现类似证书错误,那么一般是证书更新了,重新执行一、 二更新证书和cacerts文件。

上一篇下一篇

猜你喜欢

热点阅读