我使用Eclipse为Android 2.2创建了一个应用程序,我使用我创建的密钥库进行了签名,然后将其上传到Market。
我已对应用程序进行了一些更改,我已将应用程序版本从1.0 tp 1.1更改,然后我尝试签署新生成的.apk文件,但我遇到以下错误:
jarsigner:无法签名jar:java.util.zip.ZipException:无效的条目压缩大小(预期525但得到527字节)。
当您尝试唱一个已签名的.apk文件时,会发生此错误,我已经从Eclipse生成了一个未签名的.apk,并且我的应用已成功签名。
现在市场拒绝我的新签名应用程序,我想第一个版本是由Eclpise和我的密钥库签署的,现在我不能有两个签署的新版本。这是真正的分析吗?
我做错了什么?
答案 0 :(得分:1)
要在Eclipse中获取未签名的apk,请在Package Explorer窗口中右键单击应用程序名称,然后选择Android Tools,然后选择“Export Unsigned Application Package ...”。将包保存到新位置。 一旦你有一个未签名的apk。运行您在unsigned apk文件上使用的jarsigner命令。
$ jarsigner -verbose -keystore my-release-key.keystore my_application.apk alias_name
$ jarsigner -verify my_signed.apk
$ jarsigner -verify -verbose -certs my_application.apk
注意:如果您看到“CN = Android Debug”,则表示使用Android SDK生成的调试密钥对.apk进行了签名。如果您打算发布应用程序,则必须使用私钥而不是调试密钥对其进行签名。
$ zipalign -v 4 your_project_name-unaligned.apk your_project_name.apk
$ zipalign -c -v <alignment> existing.apk
来源: http://forum.xda-developers.com/showthread.php?t=492822 http://developer.android.com/guide/developing/tools/zipalign.html
这解决了我的问题