尝试在Eclipse中导出已签名的apk时出现此错误
运行zipalign时出错: 打不开 作为zip存档
我运行了帮助 - >检查更新以确保安装了最新更新,并且SDK工具也是最新的。
答案 0 :(得分:65)
我收到了同样的错误消息。逼我疯狂,直到我发现我的目的地路径无效。
即使apk完全有效,Zipalign也会给你错误,但是
答案 1 :(得分:7)
我有同样的问题,是的,这是因为该工具无法识别路径。我使用了错误的斜杠,因为我从开发人员博客得到了不好的建议。
如果文件“origin.apk”位于C目录中名为“storage”的文件夹中,则采样行命令:
zipalign -f -v 4 “c:\storage\origin.apk” “c:\storage\done.apk”
确保使用输入键上方的斜杠...我看到的很多“示例”都使用了shift键,但这不起作用。这将使用名为“origin.apk”的apk并对其进行zipalign,然后将其保存到与文件“done.apk”相同的目录中。
也许这只是在Vista上,我不知道。我使用的是32位Windows Vista。
答案 2 :(得分:6)
在我的情况下,我从unsigned apk所在的目录运行命令,并且运行完美。
cd /platforms/android/build/outputs/apk
zipalign -v 4 android-release-unsigned.apk signed.apk
这样,我就不用担心指定目录了。
ps:我在ubuntu上做过这个。
答案 3 :(得分:3)
我在Deploy目录中删除了apk文件,导出工作正常。
答案 4 :(得分:3)
我必须提供未签名的APK文件的完整路径: 的平台/机器人/建造/输出/ APK /机器人释放-output.apk 强>
答案 5 :(得分:2)
如果您的预对齐APK大于2GB,则也会导致此问题。在Windows 10计算机上使用build-tools 23.0.1进行测试。
答案 6 :(得分:1)
我收到此错误,因为我没有对目标目录的写入权限。相应地更改权限解决了问题。
答案 7 :(得分:1)
有时,目标文件路径中的简单\而不是/可能导致此问题。仔细检查您的多平台蚂蚁文件!
答案 8 :(得分:1)
我的zipalign命令遇到了同样的问题。输出路径是正确的,但输出路径中提供的文件夹不存在,所以我手动创建文件夹,然后一切正常。
答案 9 :(得分:0)
在 Windows 上为我解决的问题是将输出文件夹设置为驱动器 C:
答案 10 :(得分:0)
我必须从
的项目文件夹中运行cmdC:\ Users \ User \ Documents \ phone app \ 7 \ proj7 \ platforms \ android \ build \ outputs \ apkandroid-release-unsigned.apk 位于并在cmd中输入 C:\ Users \ User \ AppData \ Local \ Android \ Sdk \ build-tools \ 26.0.0 \ zipalign -v 4 android-release-unsigned.apk myApp-signed.apk
答案 11 :(得分:0)
这是您的错误
您正在尝试先设置或引用zipalign,然后运行zipalign -v 4 app-release-unsigned.apk HelloWorld.apk
不,这是您应该做的,设置zipalign引用并同时运行命令
像这样
/Users/s****/Library/Android/sdk/build-tools/28.0.3/zipalign -v 4 app-release-unsigned.apk MyApp.apk
您的apk将立即生成。
答案 12 :(得分:0)
添加我的解决方案:
我的问题是我的资产文件夹太大了,而且必须以某种方式搞乱拉链。我不得不删除资产文件夹中的文件(或将它们添加到_pre_production)。
答案 13 :(得分:0)
zipalign
工具无法访问源文件,因此您应该验证路径,文件名,扩展名,权限......
答案 14 :(得分:0)
当我在Windows资源管理器中打开项目的bin
文件夹时,发生了此问题。
然后我尝试删除我的旧apk文件(Export
工具试图覆盖失败)但我无法做到,因为我没有获得必要的许可,或者因为其他一些进程锁定了文件。
解决方案是重新启动我的计算机,该计算机释放了apk文件上的锁定。然后,Eclipse的Export
工具运行良好。
更新
无法在Windows资源管理器或命令窗口中删除旧的apk文件(即使我使用管理员权限打开它),但我可以在我的FileZilla
FTP客户端应用程序中查看它时删除apk。显然,这比重新启动计算机更方便。
答案 15 :(得分:0)
在我的情况下,问题是utf-8命名文件夹。我把它改成英文并且工作了。我使用的是Windows 8 x64企业版。
答案 16 :(得分:0)
检查目标磁盘上的可用空间。我得到了同样的错误,因为我的磁盘已满: - )
答案 17 :(得分:0)
如果目标文件已经存在并且由另一个进程打开,那么您将看到此错误。
解决方法:重命名目标文件,或关闭已打开文件的应用程序。
答案 18 :(得分:-1)
就我而言,在Linux(Mint)上,我必须手动设置zipalign的执行权限,然后它就像魅力一样。
答案 19 :(得分:-2)
对于mac
由于编码结果不匹配,您必须这样做:
-Dfile.encoding=utf-8