【发布时间】:2018-01-03 07:05:06
【问题描述】:
我无法在 Android Studio 中打开现有的密钥库文件,也无法从命令行使用 jarsigner。
在这两种情况下,错误消息都是:
java.security.cert.CertificateException:无法初始化,java.io.IOException:DerInputStream.getLength():发现冗余长度字节
显然这是一个应该用JDK8_131 解决的问题,但对我不起作用。 (我们都在使用 OSX)
我在 travis 上也遇到同样的错误。 (请参阅下面的“更新”部分。)
我发现了另一个 SO 问题 (Signing android app throws IOException: Redundant length bytes found),他们将 .pkc12 文件转换为 .keystore,但我们已经在使用 .keystore
更新
我发现 travis 上的构建也开始失败,因为他们正在将构建移动到他们的新发行版 trusty,该发行版下载最新的 JDK,而 precise 默认使用 JDK7。将dist: precise 添加到.travis.yml 文件的顶部目前可行,但这绝对不是永久解决方案。
我们是否只能希望 JDK 更新能够解决该问题,或者是否有办法从密钥库中删除多余的长度字节?
【问题讨论】:
-
不太确定,但您似乎遇到了这个问题:bugs.openjdk.java.net/browse/JDK-8179191。如果是...它仅在 java-9 中修复。您可以尝试使用 java-9 看看会发生什么吗?
-
但是我们用的不是openJDK而是oracle的JDK
-
无论如何,代码都接近相同。并且针对 oracle jdk-9 进行测试不会受到伤害
-
只是为了确保 - 你能用
jdk-9重新制作这个吗? -
我还没来得及检查。但是据我所知JDK9还没有正式发布,对吧?
标签: android macos java-8 apk signing