Android studio安装升级到最新本后需要获取SHA1值,然后就输入密钥库口令:
keytool -v -list -keystore keystore文件路径
结果就提示了一下错误:
keytool 错误: java.io.IOException: Invalid keystore format 如下图所示
刚开始还以为是自己粗心,哪里弄错了,没怎么在意,后来一直没弄成功,网上百度了一下,说是可能gradle的配置问题,还有说是生成密钥文件的jdk版本不一致的问题,我在Android studio里面设置jdk版本,然后重新创建密钥文件还是提示错误。然后我用以前项目的密钥文件来获取SHA1值反而成功了,就新生成的不行,然后我就去Android群里问了大佬,就给我说要去到Android studio自带的jre环境里面执行这个命令,然后就成功了,但我还是不理解,有知道的小伙伴留言指导一下,感谢了。
步骤如下:
1.生成keystore和访问keystore的JDK版本不一致。(通俗来讲就是 jks是用和当前jdk的不同版本生成的。比如1.8 和 11 )就会报错。(项目需要有时候本地会配置多个版本的jdk 此时多注意)。
2.进入当前项目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 签名文件的绝对路径
后来根据高德地图的官网教程,其实发现人家早就告诉了你报错应该怎么排查了,如下图所示: