当前位置: 首页 > 面试题库 >

签署Android应用程式会引发IOException:找到多余的长度位元组

鄢博简
2023-03-14
问题内容

我们正在开发Cordova应用程序,因此难以签署该应用程序的Android版本。

使用命令

jarsigner -keystore keystore.p12 -storetype pkcs12 android-release-unsigned.apk 1

给出以下异常

java.io.IOException: DerInputStream.getLength(): Redundant length bytes found

它来自OpenJDK中的这一行,显然是为了修复CVE-2016-5546而添加的,尽管我对加密技术的了解还不足以真正理解它。

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

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

任何jarsigner或keytool命令都抛出相同的异常,我猜这是有道理的,因为它们都使用相同的Java库


问题答案:

我们有同样的问题。我们发现JDK 1.8.0_112没有您正在谈论的错误。因此,我们通过以下方式解决了该问题:

首先,我们使用以下命令()将其转换temp_keystore.p12为:mycert.keystore``Java\jdk1.8.0_112\bin\keytool.exe

keytool -importkeystore -srckeystore temp_keystore.p12 -destkeystore mycert.keystore -srcstoretype pkcs12

然后我们使用以下命令(Java\jdk1.8.0_112\bin\jarsigner.exe)

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore mycert.keystore ReadyForSigning.apk 1

签字apk。(1命令末尾的“ ”是别名)

PS .:可能不需要从转换.p12.keystore



 类似资料:
  • 问题内容: 我想将android模拟器上的数据发送到本地主机网络,并获得一些结果。 这是例外。 为什么这么说呢?有人可以帮我吗?提前致谢。 问题答案: 它是一个已知的错误,在将来的版本中已修复。 http://code.google.com/p/android/issues/detail?id=12724 最简单的解决方法是对URL使用不同的构造函数。该结构接受主机名,端口和文件 编辑 在您的情况

  • 我尝试使用HttpUrlConnection使我的应用程序与我的php服务器通信。我写了一个在我的电脑上运行良好的类,但当我在手机上执行它时,它根本不起作用。 这是我的代码: DataOutputStream out=新的DataOutputStream(connection.getOutputStream());引发此异常: 我在电脑上测试了这段代码,它没有引发任何异常。我的清单: 谢谢

  • 我有不同长度的数组列表。我想在列表中找到数组的最高长度,并通过填充null/空值使所有剩余的数组具有相同的长度。 例如:我有一个数组列表 我想在列表中找到数组的最大长度,即在上述情况下的5(的长度) 我想使所有剩余的数组也具有相同的长度,如下所示 我该如何实现呢? 数组列表和查找最大长度的示例代码

  • 在通过CLI部署EAR时,会出现以下错误: 然而,Netbeans在IDE中部署了同样的EAR fine。 我认为问题是EJB模块依赖于作为JAR构建的远程接口。这个JAR包含在EAR中,但我不认为这就足够了。我尝试将其放置在和中,但是,这并不能解决或更改异常。 问题是JAR需要在glassfish上可用吗?在这个EJB实现这个接口之前,它部署得很好。(EJB实现远程接口的原因是,EJB可用于we

  • 我正在使用Appium自动化android应用程序。我正在尝试使用Android SDK提供的UIAutomatorView工具定位一个元素。以下是我找到的xpath,但我认为它可能是错误的: 每当我执行时,我都会收到以下错误:org.openqa.selenium.InvalidSelectorException:Argument是无效的选择器(例如XPath/CSS)。(警告:服务器没有提供任

  • 问题内容: 我在Android手机上部署Android应用程序时遇到ClassNotFoundException。 我尝试在具有Android 6.0.1和Android 7.1.1的android手机上 而当我在(Nexus 5X API 26)并运行Android 8.0的模拟器上部署相同的应用程序时,我不会遇到任何问题。该应用程序加载平稳。 Build.gradle(应用程序)文件具有 我包