无法使用 Android Studio 签署 APK - 出现异常:DerInputStream.getlength()
Cannot sign an APK with Android Studio - Getting exception: DerInputStream.getlength()
我刚刚继承了一个 2013 年创建的旧项目。
密钥库可能是用 jdk 7 创建的。
当我尝试在 Android studio 中生成 APK 时,出现异常:
无法加载密钥存储:无法初始化,java.io.IOException:DerInputStream.getLength():发现冗余长度字节
我试过的是:
- 将密钥库转换为 pk12 - 这里我遇到了与上面相同的异常
- 在 KeyStore Explorer 中打开密钥库 - 也不起作用,我无法查看密钥
- 我也尝试联系 google(Play 商店支持),但他们回复说“我们的团队没有接受过为密钥提供技术支持的培训。”
相关帖子:
Android keystore corrupted
我不知道下一步该做什么。
唯一可行的方法是在终端中手动签署未签名的 apk。
这个解决方案不是最优的。
此外,它仅在使用旧 jdk 版本时有效(在本例中为 jdk1.7.0_80)
所以我不能长期使用这个解决方案。
这可能对您有所帮助。这是在 JDK 7 上生成的密钥库无法用 JDK 8.
读取的相同情况
https://forum.unity.com/threads/keystore-generated-on-jdk-7-unable-to-read-with-jdk-8.460020/
好吧,我没有尝试修复原始密钥库,而是通过转向 Play 应用签名设法解决了这个问题。
我创建了一个新的上传密钥,我从现在开始使用它来创建签名的 APK。
对于可能有帮助的人:
签名以播放商店并导航到您的应用程序
转到设置 -> 应用完整性
选择从 Java 密钥库导出并上传密钥,然后按照说明操作*
*请注意,在此阶段您可能会遇到与上述相同的异常 (DerInputStream.getlength()....)。
发生这种情况是因为私钥生成命令使用 java - 与首先导致异常的 java 版本相同。
所以这是要点:
您应该使用不同的 java 8 版本,在该版本中不会发生异常(如 1.8.0_112)。
它不适用于 java 7 及更早版本,因为 pepk 工具是使用 java 8.
构建的
像这样:
/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/jre/bin/java
-jar pepk.jar ....
从这里继续创建新的上传密钥,您应该已完成所有设置。
我刚刚继承了一个 2013 年创建的旧项目。
密钥库可能是用 jdk 7 创建的。
当我尝试在 Android studio 中生成 APK 时,出现异常:
无法加载密钥存储:无法初始化,java.io.IOException:DerInputStream.getLength():发现冗余长度字节
我试过的是:
- 将密钥库转换为 pk12 - 这里我遇到了与上面相同的异常
- 在 KeyStore Explorer 中打开密钥库 - 也不起作用,我无法查看密钥
- 我也尝试联系 google(Play 商店支持),但他们回复说“我们的团队没有接受过为密钥提供技术支持的培训。”
相关帖子:
Android keystore corrupted
我不知道下一步该做什么。
唯一可行的方法是在终端中手动签署未签名的 apk。
这个解决方案不是最优的。
此外,它仅在使用旧 jdk 版本时有效(在本例中为 jdk1.7.0_80)
所以我不能长期使用这个解决方案。
这可能对您有所帮助。这是在 JDK 7 上生成的密钥库无法用 JDK 8.
读取的相同情况https://forum.unity.com/threads/keystore-generated-on-jdk-7-unable-to-read-with-jdk-8.460020/
好吧,我没有尝试修复原始密钥库,而是通过转向 Play 应用签名设法解决了这个问题。
我创建了一个新的上传密钥,我从现在开始使用它来创建签名的 APK。
对于可能有帮助的人:
签名以播放商店并导航到您的应用程序
转到设置 -> 应用完整性
选择从 Java 密钥库导出并上传密钥,然后按照说明操作*
*请注意,在此阶段您可能会遇到与上述相同的异常 (DerInputStream.getlength()....)。
发生这种情况是因为私钥生成命令使用 java - 与首先导致异常的 java 版本相同。
所以这是要点:
您应该使用不同的 java 8 版本,在该版本中不会发生异常(如 1.8.0_112)。
它不适用于 java 7 及更早版本,因为 pepk 工具是使用 java 8.
像这样:
/Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/jre/bin/java -jar pepk.jar ....
从这里继续创建新的上传密钥,您应该已完成所有设置。