前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记录一次 Windows Android Studio 异常

记录一次 Windows Android Studio 异常

作者头像
贺biubiu
发布2020-02-26 11:01:33
2.3K1
发布2020-02-26 11:01:33
举报
文章被收录于专栏:HLQ_StruggleHLQ_Struggle

78

次推文

LZ-Says

2020,贪财好色,一身正气。

前言

Today,突然看到 CSDN App 提示有条私信:

想了下 no mouble,很 easy 呀,同步下就好啦~

鸡老大,瞅瞅我分分钟搞定~

得瑟的代价,就是啪啪打脸,车翻了。特意记录下。

修车 Go~

小伙子发来一个异常图,一起来看下:

脑子想了半天,没遇到过这个问题呀,说的什么鬼证书的事儿。我从 Windows 切换到 Mac OS,Android Studio 倒是一直没出现过这个鬼鬼。

怎么办,找鸡老大?

ummm,想都不想就找鸡老大,容易被怼。顺手打开 stack overflow 万能的神器,找到如下解决方案:

  • Resolving javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed Error?

这里特意截取关键解决之道,方便某天神奇的打不开就尴尬了,其实还是方便我这个懒人,哇咔咔~

来来来,搞起来~

远程了小伙子的电脑,发现是连接 jcenter 下载相关资源包异常导致,那么操作就 easy 了很多了~

Step 1:打开 jcenter 官网,下载其证书

点击证书进入详情:

点击「复制到文件…」,这里很多都是一键式点点点,这里唯独需要主要一点,导出文件格式需要设置为 Base64 编码,如下图所示:

Step 2:介绍俩个工具

Android Studio 提供的证书管理工具:

JDK 自带证书文件:

Step 3:将下载下来的证书导入 JDK cacerts

这里需要注意一点,Windows 打开 CMD 工具一定要以管理员身份运行!!!

这里需要注意一点,Windows 打开 CMD 工具一定要以管理员身份运行!!!

这里需要注意一点,Windows 打开 CMD 工具一定要以管理员身份运行!!!

否则最后会提示 cacerts 拒绝访问。

键入以下命令行:

代码语言:javascript
复制
keytool -import -alias [证书别名] -keystore [JDK 中 cacerts 目录地址] -file [下载网址证书本地存放地址]

密钥口令:changeit

操作示意图如下:

最后会提示「是否信任此证书?」输入 y/Y 即可。

随后清空 Android Studio 缓存并重启即可。

番外篇

更新证书保险点需要三步走:

  • 查看证书信息:keytool -list -keystore [JDK 中 cacerts 目录地址]
  • 删除要更新的证书:keytool -delete -alias [证书别名] -keystore [JDK 中 cacerts 目录地址]
  • 更新证书:keytool -import -alias [证书别名] -keystore [JDK 中 cacerts 目录地址] -file [下载网址证书本地存放地址]

这里附上详情操作步骤:

代码语言:javascript
复制
<!-- 查看证书信息 -->
C:\Program Files\Android\Android Studio\jre\bin>keytool -list -keystore "C:\Program Files\Java\jdk1.8.0_91\jre\lib\security\cacerts"
输入密钥库口令:
密钥库类型: jks
密钥库提供方: SUN

您的密钥库包含 102 个条目

...
证书指纹 (SHA1): 74:20:74:41:72:9C:DD:92:EC:79:31:D8:23:10:8D:C2:81:92:E2:BB
as, 2020-2-17, trustedCertEntry, // 之前导入的证书
...

<!-- 导入证书,这个纯粹个人实验 -->
C:\Program Files\Android\Android Studio\jre\bin>keytool -import -alias as -keystore "C:\Program Files\Java\jdk1.8.0_91\jre\lib\security\cacerts" -file C:\Users\86177\Downloads\as.cer
输入密钥库口令:
keytool 错误: java.lang.Exception: 证书未导入, 别名 <as> 已经存在

<!-- 删除指定别名证书 -->
C:\Program Files\Android\Android Studio\jre\bin>keytool -delete -alias as -keystore "C:\Program Files\Java\jdk1.8.0_91\jre\lib\security\cacerts"
输入密钥库口令:

<!-- 导入证书 -->
C:\Program Files\Android\Android Studio\jre\bin>keytool -import -alias as -keystore "C:\Program Files\Java\jdk1.8.0_91\jre\lib\security\cacerts" -file C:\Users\86177\Downloads\as.cer
输入密钥库口令:
所有者: CN=*.bintray.com
发布者: CN=GeoTrust RSA CA 2018, OU=www.digicert.com, O=DigiCert Inc, C=US
序列号: e6e
有效期为 Thu Sep 26 08:00:00 GMT+08:00 2019 至 Tue Nov 09 20:00:00 GMT+08:00 2021

参考资料

  • Resolving javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed Error?
  • Java#PKIX path building failed

欢迎各位关注

不定期发布

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 贺biubiu 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档