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 密钥库文件
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值