我无法在 Android Studio 中打开现有的密钥库文件或使用jarsigner
从命令行。
在这两种情况下,错误消息都是:
java.security.cert.CertificateException:无法初始化,java.io.IOException:DerInputStream.getLength():找到冗余长度字节
See screenshot:
![Android Studio](https://i.stack.imgur.com/xPYpu.png)
显然这是一个应该解决的问题JDK8_131但对我不起作用。 (我们都使用OSX)
我在 travis 上也遇到同样的错误。 (请参阅下面的“更新”部分。)
我发现了另一个SO问题(签名 Android 应用程序抛出 IOException:找到冗余长度字节)他们在那里转换了.pkc12
文件至.keystore
但我们已经在使用.keystore
UPDATE
我发现 travis 上的构建也开始失败,因为他们正在将构建移动到新发行版trusty
下载最新的 JDK 而precise
默认使用JDK7。添加dist: precise
到顶部.travis.yml
文件目前有效,但这绝对不是永久的解决方案。
我们是否只能希望 JDK 更新能够解决该问题,或者是否有办法从密钥库中删除多余的长度字节?
我也遇到了同样的错误,我按照下面的解决方案 1 修复了它。您可以尝试解决方案1来解决。否则请遵循其他解决方案。
解决方案1
将 JDK 从 7 更新到 8
解决方案2
您可以运行以下命令来列出密钥库文件的内容:
keytool -list -keystore .keystore
如果您正在寻找特定的别名,也可以在命令中指定它:
keytool -list -keystore .keystore -alias foo
如果没有找到别名,则会显示异常:
keytool error: java.lang.Exception: Alias does not exist
解决方案3
为了获得所有详细信息,我必须添加-v
option
keytool -v -list -keystore <FileName>.keystore
它肯定会帮助您解决错误,或者您可以获得密钥库的内容并可以生成应用程序的新密钥库。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)