41

我最近将我的应用程序上传到了 android 市场,但是由于错误,它在下载时拒绝运行

包文件未正确签名

我首先使用eclipse发布了数据包,右键单击导出,创建一个密钥库然后发布,但是它拒绝工作。

然后我下载了 keytool 和 jarsigner 并使用它们签署了我发布的升级。然而,这给出了同样的错误。

我不知道我做错了什么,由于我无法删除应用程序,我无法尝试重新开始,任何人都可以帮助我吗?

谢谢

4

8 回答 8

53

您的调试副本很可能仍安装在您的设备上。现在您已经下载了同一个应用程序的不同副本,它导致了这个错误。

从您的设备上完全卸载该应用程序。然后再次从市场上下载它,它应该可以工作。

于 2010-03-25T21:49:51.613 回答
23

好的,我遇到了同样的问题,建议的解决方案都不适合我。我以与 2 年相同的方式签署我的应用程序,并且 Android 市场接受它很好,只是用户无法从市场下载它,出现“未签名的包”错误。

结果是我正在从事的另一个项目安装了JDK7。它成为默认的 JDK,出于某种原因,JDK7 的 keytool 正在以 Android 一定不喜欢的方式对包进行签名。所以我恢复到 JDK 1.6.0_23 并重新运行我的构建并将其投放市场,一切都恢复正常。

我希望这对其他人有帮助。

于 2011-10-30T15:40:34.753 回答
16

在平板电脑上,请注意,如果您安装应用程序的调试版本,然后正常卸载(拖到垃圾箱,直到显示“卸载”),这还不够。因为平板电脑具有多个用户的潜力,你必须去

 Settings > Apps > All

然后一直滚动到最底部。在那里,您将看到您的应用程序。点击它,然后点击Menu操作栏(三个点),然后点击uninstall for all users。然后你就可以走了。

于 2013-11-02T21:13:10.890 回答
4

使用 JDK7 签署 APK 时出现问题。您可以将其添加到 build.xml 来解决它

<presetdef name="signjar">
    <signjar sigalg="MD5withRSA" digestalg="SHA1" />
</presetdef>

来源:KIYUT 开发者博客

于 2012-08-17T09:36:28.487 回答
4

最近,我从命令行签署了我的 apk 并得到了这个错误。我通过此链接中的说明解决了此错误:

http://developer.android.com/tools/publishing/app-signing.html

$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name
于 2014-02-10T01:53:42.563 回答
1

发生此错误通常是因为您尝试推送使用与初始提交中使用的密钥不同的密钥签名的更新。您需要找到第一次发布应用程序时使用的密钥,并使用它来签署更新。

于 2010-03-25T21:48:20.310 回答
1

我开发的应用程序遇到了同样的问题。

转到应用管理器,清除应用的数据,然后在它正在运行时强制停止并卸载它。然后再次尝试从市场安装。这对我有用。

https://market.android.com/details?id=net.trackmelite.GoogleMaps&feature=search_result

于 2011-05-18T00:52:52.013 回答
0

我是 Android 新手,但我能够神奇地解决这个问题:D
我在我的应用程序中使用了 Java 1.7,并使用命令行实用程序 [keytool、jarsinger 和 zipalign] 对我的应用程序进行签名并得到了同样的错误。
然后我回到 Eclipse 并使用 Android 工具“导出签名的应用程序包”和我最初发布我的应用程序的密钥库;拿了那个APK并使用命令行对其进行压缩。[不得不增加清单中的版本代码]。我取消了旧的 APK 并发布了这个新的。一旦你这样做了,不要立即测试它
不知道你要等多久,但当我检查时,我的工作 4 小时后 :)

于 2013-05-23T03:27:21.497 回答