运行zipalign时出错

net*_*guy 37 eclipse android export package

尝试在Eclipse中导出已签名的apk时出现此错误

运行zipalign时出错:无法打开zip存档

我运行了Help-> Check for Updates以确保安装了最新的更新,SDK工具也是最新的.

Tap*_*boy 65

我收到了相同的错误消息.逼我疯狂,直到我发现我的目的地路径无效.

即使apk完全有效,Zipalign也会给你错误,但是

  • apk的路径无效
  • 目的地无效或不存在
  • 权限无效(apk被其他程序锁定)

  • 很好的答案.我的问题就是这种情况,特别是因为目标路径不存在.因此,注意:zipalign不会为您创建目录. (3认同)
  • 当第一个路径无效时,也会出现此错误. (3认同)
  • 在@ BrianWhite的回答的基础上,当前一个APK被另一个程序锁定时,我有了这个 - 实质上是一个权限问题,但是在目标文件而不是目录上.为什么Gradle不能给你一个合理的错误信息,例如"无法创建APK",而不是这个神秘的BS? (2认同)

小智 7

我有同样的问题,是的,这是因为该工具无法识别路径.我使用了错误的斜杠,因为我从开发人员博客得到了不好的建议.

如果文件"origin.apk"位于C目录中名为"storage"的文件夹中,则采样行命令:

zipalign -f -v 4 “c:\storage\origin.apk” “c:\storage\done.apk”
Run Code Online (Sandbox Code Playgroud)

确保你使用输入键上方的斜杠...我所看到的很多"例子"都使用了移位键的那个,这是行不通的.这将使用名为"origin.apk"的apk并对其进行zipalign,然后将其保存到与文件"done.apk"相同的目录中.

也许这只是在Vista上,我不知道.我使用的是32位Windows Vista.


Ber*_*rah 6

就我而言,我从未签名apk所在的目录中运行了命令,并且运行得很好。

cd /platforms/android/build/outputs/apk
zipalign -v 4 android-release-unsigned.apk signed.apk 
Run Code Online (Sandbox Code Playgroud)

这样,我不必担心指定目录。

ps:我是在ubuntu上做的。


net*_*guy 3

我删除了 Deploy 目录中的 apk 文件,然后导出工作正常。