我最近将我的应用程序上传到安卓市场,但是在下载后由于错误而无法运行
包文件未正确签名
我最初使用eclipse发布该程序。右键单击导出,在创建密钥库之后发布,但它无法正常工作。
然后我下载了keytool和jarsigner,并使用它们来签署了一个升级版,然后将其发布。 然而,这仍然出现相同的错误。
我不知道我哪里做错了,由于无法删除该应用程序,因此无法重试,请问有谁能帮助我吗?
谢谢
我最近将我的应用程序上传到安卓市场,但是在下载后由于错误而无法运行
包文件未正确签名
我最初使用eclipse发布该程序。右键单击导出,在创建密钥库之后发布,但它无法正常工作。
然后我下载了keytool和jarsigner,并使用它们来签署了一个升级版,然后将其发布。 然而,这仍然出现相同的错误。
我不知道我哪里做错了,由于无法删除该应用程序,因此无法重试,请问有谁能帮助我吗?
谢谢
好的,我遇到了与之前相同的问题,但是建议的解决方法都对我没用。我一直以来都是用相同的方式给我的应用签名,而且Android市场也一直都能接受它,只是用户却无法从市场上下载,出现了“未签名的包”错误。
最后发现是因为我安装了JDK7来完成另一个项目,它成了默认的JDK版本,但由于某种原因,JDK7中的keytool签名方式可能不被Android所支持。所以我重新回到了JDK 1.6.0_23并重新构建了我的应用,然后把它放到市场上,所有问题都恢复了正常。
希望这篇翻译能够帮助其他人。
请注意,在平板电脑上,如果您安装了应用程序的调试版本,然后像通常一样将其卸载(将其拖到垃圾桶中直到出现“卸载”),这还不够。因为平板电脑有多个用户的可能性,您必须转到
Settings > Apps > All
然后滚动到底部。在那里,您将看到您的应用程序。点击它,然后在操作栏(三个点)中点击菜单
,然后选择卸载所有用户
。然后您就可以开始使用了。
使用JDK7签名APK时会出现问题。您可以通过将以下内容添加到build.xml来解决该问题。
<presetdef name="signjar">
<signjar sigalg="MD5withRSA" digestalg="SHA1" />
</presetdef>
Source: KIYUT Developer Blog
$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore my_application.apk alias_name
这个错误通常是因为您试图推送一个使用与您在初始提交中使用的不同密钥签名的更新。您需要找到第一次发布应用程序时使用的密钥,并使用它来签署更新。
我开发的应用也遇到了同样的问题。
前往应用管理器,清除该应用的数据,如果它正在运行则强制停止并卸载它。然后再尝试从市场安装。这对我有用。
https://market.android.com/details?id=net.trackmelite.GoogleMaps&feature=search_result
我对Android还很陌生,但是我神奇地解决了这个问题 :D
我在我的应用程序中使用了Java 1.7,并使用命令行工具[keytool、jarsigner和zipalign]签署了我的应用程序,但是仍然出现了相同的错误。
然后我回到Eclipse并使用Android工具“导出已签名的应用程序包”,使用最初发布我的应用程序的相同密钥库获取了该APK文件;然后使用命令行对其进行了zipalign操作[顺便提一下,在清单中必须增加versioncode]。我取消发布了旧的APK并发布了这个新的APK。一旦你这样做了,不要立即测试它。
不确定需要等待多长时间,但当我检查时,我的应用程序在4小时后开始正常工作 :)