接入高德等三方sdk时,经常需要填写签名sha1等信息,我们也经常遇到一些关于签名的问题,记录一个我常见的问题,分享给大家
keytool 错误: java.io.IOException: Invalid keystore format
java.io.IOException: Invalid keystore formatat sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:658)at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:56)at sun.security.provider.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:224)at sun.security.provider.JavaKeyStore$DualFormatJKS.engineLoad(JavaKeyStore.java:70)at java.security.KeyStore.load(KeyStore.java:1445)at sun.security.tools.keytool.Main.doCommands(Main.java:892)at sun.security.tools.keytool.Main.run(Main.java:343)at sun.security.tools.keytool.Main.main(Main.java:336)
这个问题简单来说就是工具和你的签名文件jks或者keystore不匹配,我遇到的问题就是,我用Android Studio生成的签名文件,我用java jdk中的keytool去访问,就访问不了,正确的方法应该是用Android Studio安装目录下的keytool去访问,自己找自己的目录,我贴一下我的路径,你们可以参考
C:\Program Files\Android\Android Studio\jbr\bin>keytool -v -list -keystore D:\Androidworkspace\English\app\english.keystore
输入我上面的这行命令,里面相关的路径和文件名改成自己的就可以了,结果如下图:
当然,如果你是用Android Studio工具访问了jdk生成的签名报了同样的错误,那你就换换工具呗,灵活变通一下,如果还不行,还是报错,那你检查密码输入是否正确,大小写是否搞反,实在不行就生成一个密码简单的jks先试一下,也有可能是jks损坏
就到这儿吧