相关疑难解决方法(0)

无法在AndroidStudio中打开密钥库 - "找到冗余长度字节"

我无法在Android Studio中打开现有的密钥库文件或使用jarsigner命令行中的命令行.

在这两种情况下,错误消息是:

java.security.cert.CertificateException:无法初始化,java.io.IOException:DerInputStream.getLength():找到冗余长度字节

看截图:
Android Studio

显然这是一个应该用JDK8_131解决的问题,但对我不起作用.(我们都在使用OSX)

我也在travis上得到了同样的错误.(参见下面的"更新"部分.)

我发现另一个SO问题(签署Android应用程序抛出IOException:发现冗余长度字节)他们将.pkc12文件转换为.keystore但我们已经在使用.keystore


UPDATE

我发现构建也开始在travis上失败,因为他们正在将构建版本移动到新的发行版trusty,下载最新的JDK,而precise默认使用JDK7.添加dist: precise.travis.yml文件的顶部现在可以工作,但这绝对不是永久的解决方案.

我们是否只希望JDK更新能解决问题,还是有办法从密钥库中删除冗余长度字节?

macos android signing apk java-8

10
推荐指数
1
解决办法
1493
查看次数

签署Android应用程序抛出IOException:找到冗余长度字节

我们正在开发Cordova应用程序,并且无法签署Android版本的应用程序.

使用命令

jarsigner -keystore keystore.p12 -storetype pkcs12 android-release-unsigned.apk 1
Run Code Online (Sandbox Code Playgroud)

给出以下例外

java.io.IOException: DerInputStream.getLength(): Redundant length bytes found
Run Code Online (Sandbox Code Playgroud)

来自OpenJDK中的这一行显然是为了修复CVE-2016-5546而添加的,虽然我不太了解加密来真正理解它.

使用openssl导出证书并从中创建新的p12工作正常,但更改签名,这意味着Play商店拒绝上传.

我们的密钥库来自另一家我们最初将应用程序开发外包给的公司.

任何jarsigner或keytool命令抛出相同的异常,我认为这是有意义的,因为它们都使用相同的Java lib

java android signing pkcs#12 cordova

6
推荐指数
1
解决办法
1905
查看次数

标签 统计

android ×2

signing ×2

apk ×1

cordova ×1

java ×1

java-8 ×1

macos ×1

pkcs#12 ×1