文章目录

  • 错误提示
  • 解决方案
  • 结语


错误提示

Android studio安装升级到最新本后需要获取SHA1值,然后就输入密钥库口令:
keytool -v -list -keystore keystore文件路径

结果就提示了以下错误:

keytool 错误: java.io.IOException: Invalid keystore format 如下图所示:

android studio没有证书 android studio 证书问题_SHA1

解决方案

  刚开始还以为是自己粗心,哪里弄错了,没怎么在意,后来一直没弄成功,网上百度了一下,说是可能gradle的配置问题,还有说是生成密钥文件的jdk版本不一致的问题,我在Android studio里面设置jdk版本,然后重新创建密钥文件还是提示错误。然后我用以前项目的密钥文件来获取SHA1值反而成功了,就新生成的不行,然后我就去Android群里问了大佬,就给我说要去到Android studio自带的jre环境里面执行这个命令,然后就成功了,但我还是不理解,有知道的小伙伴留言指导一下,感谢了。
步骤如下:

  1. 生成keystore和访问keystore的JDK版本不一致。(通俗来讲就是 jks是用和当前jdk的不同版本生成的。比如1.8 和 11 )就会报错。(项目需要有时候本地会配置多个版本的jdk 此时多注意)。
  2. android studio没有证书 android studio 证书问题_keystore_02

  3. 进入当前项目jdk根目录bin cmd (我这里用的是AndroidStudio自带的jre)要进入bin根路径,如下图所示:

    在这个目录下进行命令输入keytool -v -list -keystore keystore文件路径,这样jdk 应该就一致了。
      直接在as中 的终端用的是哪个jdk我也不清楚,毕竟as自带一个jdk,电脑也装过java,可能终端默认用的是之前装的java的jdk吧。但是根据教程应该是这样的,步骤如下:
  1. 在签名文件位置处打开cmd
  2. 在cmd 中输入命令 keytool -list -v -keystore 签名文件名称

keytool -list -v -keystore 签名文件名称.keystore或者jks 输入命令后提示输入密钥库口令,口令是你在添加签名文件的时候设置的,输入后回车,即可获取到如下SHA 1值。或者在任意位置打开cmd命令输入以下命令:

keytool -list -v -keystore 签名文件的绝对路径

后来根据高德地图的官网教程,其实发现人家早就告诉了你报错应该怎么排查了,如下图所示:

android studio没有证书 android studio 证书问题_SHA1_03

结语

  每个人刚开始学习的时候都是小白,这个过程中或多或少的都会看看别人写的博客,过程中也可能会踩过很多坑。遇到问题的时候,我们可以记录下来,不管是对自己还是对其他学习的小伙伴都很有帮助。程序员大多都是很孤独的,写作也可以让自己的孤独“有处安放”,多去表达,多点表达,对于不善言辞的程序员总是有很多好处,博文写作的过程中最重要的是思路清晰有条理,和敲代码最大的不同是,编程有了明确的目标,日复一日必成高手,而写作如果只是为了写而写,往往会失了初心,丢了本真。写作不仅可以提高言语表达能力,更可以培养持续做事情的毅力,最好得是能遇到很多志同道合的朋友。