Android 获取SHA1值遇到 keytool 错误: java.io.IOException: Invalid keystore format

  在使用keytool获取SHA1值时,报错java.io.IOException: Invalid keystore format,我是获取发布版和调试版都出现了这个错,如下图所示。
在这里插入图片描述
  如果是获取发布版SHA1值,有可能存在的原因是未生成密钥库,需要先生成一个私钥库,生成命令如下,也可通过Android Studio等IDE 创建密钥库生成:

keytool -genkey -alias android.keystore -keyalg RSA -validity 36500 -keystore /你的路径/android.keystore

  这句话的意思是:创建了一个名为android.keystore的别名也为android.keystore的采用RSA加密算法的有效期为100年的证书文件(由于之前我已经生成了android.keystore,所以现在根据参数说明改文件名等)
  不过即使生成了密钥库我依然遇到了上面同样的问题,最后终于发现,需要使用生成密钥库时对应的JDK版本的keytool获取密钥,若版本不一致,就会出现上述问题。我的情况就是:Android Studio自带了Java SDK,和我电脑里的JDK1.8起冲突了,由于配置环境变量时配置的JDK1.8,所以keytool默认使用的版本为1.8,但是密钥库都是在AS里生成的,且默认使用了其自身的JDK,所以在获取SHA1值时,需要使用AS JDK里的keytool工具才可以,AS JDK的目录一般为/AS安装目录/jbr/bin或者/**/jre/bin,进入到AS JDK bin目录下重新运行获取SHA1值命令,大功告成:

./keytool.exe -v -list -keystore 密钥库文件

猜你喜欢

转载自blog.csdn.net/qq_35308053/article/details/130644005
今日推荐