发布的Android apk给出错误“包文件未正确签名”

时间:2010-03-25 21:07:09

标签: android keytool jarsigner google-play

我最近将我的应用程序上传到了Android市场,但是因为错误而下载时它拒绝运行

  

包文件未正确签名

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

然后我下载了keytool和jarsigner并用它们签署了我发布的升级版。但是这会产生同样的错误。

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

由于

8 个答案:

答案 0 :(得分:53)

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

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

答案 1 :(得分:23)

好的,我有同样的问题,没有一个建议的解决方案适合我。我以同样的方式签署了我的应用程序2年,Android Market接受它很好,只是用户无法从市场下载“未签名包”错误。

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

我希望这有助于其他人。

答案 2 :(得分:16)

在平板电脑上,请注意,如果您安装了应用的调试版本,然后正常卸载它(拖到垃圾桶直到它说“卸载”)这还不够。由于平板电脑具有多个用户的潜力,因此您必须转到

 Settings > Apps > All

然后一直滚动到最底层。在那里,你会看到你的应用程序。点按它,然后点击操作栏中的Menu(三个点),然后点击uninstall for all users。然后你会很高兴。

答案 3 :(得分:4)

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

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

来源:KIYUT Developer Blog

答案 4 :(得分:4)

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

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

答案 5 :(得分:1)

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

答案 6 :(得分:1)

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

转到App Manager,清除应用程序的数据,然后强制停止,如果它正在运行并卸载它。然后再次尝试从市场安装。这对我有用。

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

答案 7 :(得分:0)

我是Android新手,但我能够神奇地解决这个问题:D
我在我的应用程序中使用Java 1.7并使用命令行实用程序[keytool,jarsinger和zipalign]来签署我的应用程序并得到相同的错误。
然后我回到Eclipse并使用Android工具“Export Signed Application Package”和我最初发布我的应用程序的同一个密钥库;拿了那个APK并使用命令行压缩它。[必须在清单btw中增加版本代码]。我未发布旧APK并发布了这个新APK。执行此操作后,不会立即对其进行测试 不知道你需要等多久,但是当我检查时,我的工作时间是4小时:)