我无法在Android Studio中打开现有的密钥库文件,或者从命令行使用jarsigner。
在这两种情况下,错误消息是
java.security.cert.CertificateException:无法初始化,java.io.IOException:DerInputStream.getLength():find冗余字节
显然这是一个问题,应该用JDK8_131解决,但不适合我。 (我们都使用OSX)
我也得到了同样的错误Travis。 (见更新)
我发现另一个SO问题 ,他们将.pkc12
文件转换为.keystore
但我们已经使用.keystore
UPDATE
我发现这个版本也开始在travis上失败了,因为他们正在把版本移植到新的发行版trusty
下载最新的JDK,而默认使用precise
JDK7。 将dist: precise
地添加到.travis.yml
文件的顶部,但是这绝对不是一个永久的解决scheme。
我们是否只希望修复问题的JDK更新或者是否有办法从密钥库中删除多余的长度字节?
我也得到了同样的错误,我通过解决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
它肯定会帮助你解决错误,或者你可以得到你的密钥库的内容,并可以生成一个新的应用程序的密钥库