java - 签名Android apk : INSTALL_PARSE_FAILED_NO_CERTIFICATES

标签 java android processing

我正在尝试对使用Processing 创建的Android apk 进行签名。

这就是我所做的(基于此:http://www.akeric.com/blog/?p=1352):

keytool -genkey -v -keystore myapp-release-key.keystore -alias myname -keyalg RSA -keysize 2048 -validity 10000

ant release

jarsigner -verbose -keystore myapp-release-key.keystore <PATH>/android/bin/<APPNAME>-release-unsigned.apk myname

jarsigner -verify <PATH>/android/bin/<APPNAME>-release-unsigned.apk

zipalign -v 4 bin/<APPNAME>-release-unsigned.apk bin/<APPNAME>-release.apk

adb install bin/<APPNAME>-release.apk

但是我收到错误:

INSTALL_PARSE_FAILED_NO_CERTIFICATES

jarsigner 验证终止于:

s = signature was verified 
m = entry is listed in manifest
k = at least one certificate was found in keystore
i = at least one certificate was found in identity scope

jar verified.

Warning: 
    This jar contains entries whose certificate chain is not validated.
    This jar contains signatures that does not include a timestamp. Without a timestamp, users may not be able to validate this jar after the signer certificate's expiration date (2042-09-08) or after any future revocation date.

对于哪里出了问题有什么想法吗?与这些警告有关吗?

最佳答案

请确保将以下 2 个选项添加到您的 jarsigner 命令中:-sigalg SHA1withRSA -digestalg SHA1,即使您在生成 key 时已经指定了类似的内容。像这样:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore myapp-release-key.keystore <PATH>/android/bin/<APPNAME>-release-unsigned.apk myname

我花了很长时间才意识到这些不是可选的......文档在这一点上绝对不清楚。

希望有帮助。祝你好运。

关于java - 签名Android apk : INSTALL_PARSE_FAILED_NO_CERTIFICATES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29835359/

相关文章:

java - 写入文件时遇到问题

java - 了解 Wifi 分析仪如何使用 java 在 Windows 10 上工作

java - Antlr4 的缩进而不是括号

java - 如何在 Android 的 ExoPlayer 中播放 Youtube 视频?

javascript - 如何在 p5.js 中正确地将对象添加到数组?

javascript - 限制一行的长度

java - 计算处理中沿线的旋转角度

java - 如何设置 JScrollPane 只显示特定数量的行

Android C2DM注册设备报错[C2DMRegistrar.39] AuthTokenCallback : authFailed

android - 启用以查看 firebase 错误控制台日志