【问题标题】:Unable to open keystore in AndroidStudio - "Redundant length bytes found"无法在 AndroidStudio 中打开密钥库 - “发现冗余长度字节”
【发布时间】: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


【解决方案1】:

我也遇到了同样的错误,我按照下面的解决方案 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 选项

keytool -v -list -keystore <FileName>.keystore

它肯定会帮助您解决错误,或者您可以获得密钥库的内容并可以为您的应用生成新的密钥库。

【讨论】:

  • sugansoft 我同意你的回答......太好了,我一直在寻找。但它只是固定并节省了我的时间....
  • 抱歉,这不起作用。首先,当我们更新到 JDK8 时出现了问题。第二个keytool 是Android Studio 调用的工具。因此,当使用 keytool 时,我会遇到完全相同的错误。
【解决方案2】:

我们最终能够通过使用 Google Play App Signing 来解决这个问题。

我们使用一台装有 JDK 7 的机器来执行应用签名教程中描述的所有步骤。

然后我们使用 JDK9 机器创建了新的密钥库。

【讨论】:

  • 你具体做了哪些步骤?我有同样的问题。谢谢
  • 我还没有迈出这一步,因为这个过程一旦开始就不可逆转,但我可能很快就会朝着这个方向前进。
【解决方案3】:

我遇到了完全相同的问题,但没有一个解决方案有效。

我终于通过上传使用 pepk 工具生成的私钥升级到 Google 的新应用签名来让它工作,并请求他们的支持来重置上传密钥。

【讨论】:

  • 我也有完全相同的问题,但您的解决方案对我不起作用:pepk 工具产生完全相同的错误“发现冗余长度字节”。你做了什么让 pepk 工作吗?
猜你喜欢
  • 2023-03-31
  • 2017-07-22
  • 2015-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-15
  • 2010-11-05
  • 2011-09-03
相关资源
最近更新 更多