无法在 Android Studio 中打开密钥库 - "Redundant length bytes found"
Unable to open keystore in AndroidStudio - "Redundant length bytes found"
我无法在 Android Studio 中打开我现有的密钥库文件,也无法从命令行使用 jarsigner
。
在这两种情况下,错误消息都是:
java.security.cert.CertificateException: Unable to initialize, java.io.IOException: DerInputStream.getLength(): Redundant length bytes found
见截图:
显然这是一个应该用 JDK8_131 解决的问题,但对我不起作用。 (我们都在用OSX)
我在 travis 上也遇到同样的错误。 (请参阅下面的“更新”部分。)
我发现了另一个 SO 问题 (),他们将 .pkc12
文件转换为 .keystore
,但我们已经在使用 .keystore
更新
我发现构建在 travis 上也开始失败,因为他们正在将构建移动到他们的新发行版 trusty
,该发行版下载最新的 JDK 而 precise
使用 JDK默认为 7。将 dist: precise
添加到 .travis.yml
文件的顶部目前可行,但这绝对不是永久性解决方案。
我们只能希望 JDK 更新来解决问题,还是有办法从密钥库中删除冗余长度字节?
我也遇到了同样的错误,我按照下面的解决方案 1 修复了它。您可以尝试解决方案 1 来解决它。否则按照其他解决方案。
解决方案 1
Updating JDK from 7 to 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
它一定会帮助您解决错误,或者您可以获得您的密钥库的内容,并可以生成您的应用程序的新密钥库。
我们最终通过使用 Google Play App Signing.
解决了这个问题
我们使用 JDK 7 的机器来执行应用签名教程中描述的所有步骤。
然后我们使用 JDK9 机器创建了新的密钥库。
我遇到了完全相同的问题,none 的解决方案有效。
我终于通过上传使用 pepk 工具生成的私钥升级到 Google 的新应用程序签名来让它工作,并请求他们的支持重置上传密钥。
我无法在 Android Studio 中打开我现有的密钥库文件,也无法从命令行使用 jarsigner
。
在这两种情况下,错误消息都是:
java.security.cert.CertificateException: Unable to initialize, java.io.IOException: DerInputStream.getLength(): Redundant length bytes found
见截图:
显然这是一个应该用 JDK8_131 解决的问题,但对我不起作用。 (我们都在用OSX)
我在 travis 上也遇到同样的错误。 (请参阅下面的“更新”部分。)
我发现了另一个 SO 问题 (.pkc12
文件转换为 .keystore
,但我们已经在使用 .keystore
更新
我发现构建在 travis 上也开始失败,因为他们正在将构建移动到他们的新发行版 trusty
,该发行版下载最新的 JDK 而 precise
使用 JDK默认为 7。将 dist: precise
添加到 .travis.yml
文件的顶部目前可行,但这绝对不是永久性解决方案。
我们只能希望 JDK 更新来解决问题,还是有办法从密钥库中删除冗余长度字节?
我也遇到了同样的错误,我按照下面的解决方案 1 修复了它。您可以尝试解决方案 1 来解决它。否则按照其他解决方案。
解决方案 1
Updating JDK from 7 to 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
它一定会帮助您解决错误,或者您可以获得您的密钥库的内容,并可以生成您的应用程序的新密钥库。
我们最终通过使用 Google Play App Signing.
解决了这个问题我们使用 JDK 7 的机器来执行应用签名教程中描述的所有步骤。
然后我们使用 JDK9 机器创建了新的密钥库。
我遇到了完全相同的问题,none 的解决方案有效。
我终于通过上传使用 pepk 工具生成的私钥升级到 Google 的新应用程序签名来让它工作,并请求他们的支持重置上传密钥。