无法在AndroidStudio中打开密钥库 – “find冗余字节数”

我无法在Android Studio中打开现有的密钥库文件,或者从命令行使用jarsigner。

在这两种情况下,错误消息是

java.security.cert.CertificateException:无法初始化,java.io.IOException:DerInputStream.getLength():find冗余字节

Android Studio

显然这是一个问题,应该用JDK8_131解决,但不适合我。 (我们都使用OSX)
我也得到了同样的错误Travis。 (见更新)

我发现另一个SO问题 ,他们将.pkc12文件转换为.keystore但我们已经使用.keystore


UPDATE

我发现这个版本也开始在travis上失败了,因为他们正在把版本移植到新的发行版trusty下载最新的JDK,而默认使用precise JDK7。 将dist: precise地添加到.travis.yml文件的顶部,但是这绝对不是一个永久的解决scheme。

我们是否只希望修复问题的JDK更新或者是否有办法从密钥库中删除多余的长度字节?

Solutions Collecting From Web of "无法在AndroidStudio中打开密钥库 – “find冗余字节数”"

我也得到了同样的错误,我通过解决scheme1固定它。您可以尝试解决scheme1来解决它。 否则,请按照其他解决scheme。

解决scheme1:

将JDK从7更新到8

解决scheme2:

您可以运行以下命令来列出密钥库文件的内容:

 keytool -list -keystore .keystore 

如果你正在寻找一个特定的别名,你也可以在命令中指定它:

 keytool -list -keystore .keystore -alias foo 

如果没有find别名,则会显示一个exception:

  keytool error: java.lang.Exception: Alias does not exist 

解决scheme3:

为了获得所有的细节,我必须添加-v选项

keytool -v -list -keystore .keystore

它肯定会帮助你解决错误,或者你可以得到你的密钥库的内容,并可以生成一个新的应用程序的密钥库