【问题标题】:Error while running zipalign运行 zipalign 时出错
【发布时间】:2011-06-02 16:17:15
【问题描述】:

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

运行 zipalign 时出错: 打不开 作为 zip 存档

我已经运行了 Help->Check for Updates 以确保安装了最新的更新并且 SDK 工具也是最新的。

【问题讨论】:

标签: android eclipse export package


【解决方案1】:

我收到了同样的错误信息。让我发疯,直到我发现我的目标路径无效。

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

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

【讨论】:

  • 很好的答案。我的问题就是这种情况,特别是因为目标路径不存在。所以,注意:zipalign 不会为你创建目录。
  • 对目录的错误权限也可能导致它。
  • 基于@BrianWhite 的回答,当前一个 APK 被另一个程序锁定时,我遇到了这个问题——本质上是权限问题,但在目标文件而不是目录上。为什么 Gradle 不能给你一个合理的错误信息,比如“无法创建 APK”,而不是这个神秘的 BS?
  • @String: 我的 apk 是用 7zip 打开的,所以文件被锁定了。
  • 谢谢,我已更新答案以反映您的意见。
【解决方案2】:

我遇到了同样的问题,是的,这是因为该工具无法识别路径。我使用了错误的斜线,因为我从开发者博客中得到了不好的建议。

如果文件“origin.apk”位于C目录中名为“storage”的文件夹中,则示例行命令:

zipalign -f -v 4 “c:\storage\origin.apk” “c:\storage\done.apk”

确保您使用输入键上方的斜线...我看到的很多“示例”都使用 shift 键,但这是行不通的。这将获取名为“origin.apk”的 apk 并将其压缩对齐,然后将其保存到与文件“done.apk”相同的目录中。

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

【讨论】:

  • 所以在 Windows 上使用反斜杠 :),谢谢,为我做了。
【解决方案3】:

在我的例子中,我从未签名的 apk 所在的目录运行命令,它运行完美。

cd /platforms/android/build/outputs/apk
zipalign -v 4 android-release-unsigned.apk signed.apk 

这样,我就不用担心指定目录了。

ps:我是在 ubuntu 上做的。

【讨论】:

  • $ zipalign zipalign: command not found jenkins@ip-172-31-22-20:~/workspace/PP_androidBuild/PatientPortal$ sudo apt-get install zipalign Reading package lists... Done Building dependency树 正在读取状态信息...完成 E: 无法找到包 zipalign
  • 安装的 Zipalign 现在出现错误:jenkins@ip-172-31-22-20:~/workspace/PP_androidBuild/PatientPortal$ /opt/android-sdk-linux/build-tools/23.0.1 /zipalign -f -p 4 /var/lib/jenkins/workspace/PP_androidBuild/PatientPortal/platforms/android/build/outputs/apk/android-debug.apk Zip 对齐实用程序 版权所有 (C) 2009 Android 开源项目用法: zipalign [-f] [-p] [-v] [-z] infile.zip outfile.zip zipalign -c [-v] infile.zip
【解决方案4】:

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

【讨论】:

    【解决方案5】:

    我必须提供未签名 APK 文件的完整路径: platforms/android/build/outputs/apk/android-release-output.apk

    【讨论】:

      【解决方案6】:

      如果您的预对齐 APK 大于 2GB,也会导致此问题。在 Windows 10 机器上使用 build-tools 23.0.1 测试。

      【讨论】:

      • 我遇到了这个问题,你找到解决方法了吗?谢谢
      • @Beloudest 抱歉,我不记得当时发生了什么。我检查了我的笔记和社交媒体,但没有任何相关内容。我想在那之后我总是用 OBB 构建,所以我没有特别说明。抱歉,这不是很有帮助。
      • 感谢您的回复,这是由于Android APK的扩展文件大小为2GB。 2GB 的主要和 2GB 的补丁。我和我的客户试图为非洲沙漠中的用户制作一个简单的安装文件,这很糟糕。 :(
      • @Beloudest 通过 adb push 推送 OBB 对于非开发人员来说有点棘手,我曾经编写安装 apk 的批处理文件,然后为我们的 QA 推送 OBB
      • 你能提供一个可以解决这个问题的答案吗?
      【解决方案7】:

      我收到此错误是因为我没有目标目录的写入权限。相应地更改权限即可解决问题。

      【讨论】:

      • ls /var/lib/jenkins/workspace/PP_androidBuild/PatientPortal/platforms/android/build/outputs/apk/android-debug.apk -lthr -rw-r--r-- 1 jenkins jenkins 5.9M 9 月 8 日 13:10 /var/lib/jenkins/workspace/PP_androidBuild/PatientPortal/platforms/android/build/outputs/apk/android-debug.apk
      【解决方案8】:

      有时,目标文件路径中的简单 \ 而不是 / 可能会导致这种情况。仔细检查您的多平台 ant 文件!

      【讨论】:

        【解决方案9】:

        如果目标文件已经存在并且被另一个进程打开,那么你会看到这个错误。

        解决方法:重命名目标文件,或者关闭已经打开文件的应用程序。

        【讨论】:

          【解决方案10】:

          检查目标磁盘上的可用空间。我得到了同样的错误,因为我的磁盘已满 :-)

          【讨论】:

            【解决方案11】:

            在我的情况下,问题是 utf-8 命名文件夹。我把它改成英语并工作。我使用的是 Windows 8 x64 企业版。

            【讨论】:

              【解决方案12】:

              当我在 Windows 资源管理器中打开项目的 bin 文件夹时,我遇到了这个问题。

              然后我尝试删除我的旧 apk 文件(Export 工具未能成功覆盖该文件),但我无法这样做,因为我没有必要的权限或因为其他一些进程有锁在文件上。

              解决方案是重新启动我的计算机,它释放了对 apk 文件的锁定。然后 Eclipse 的 Export 工具运行良好。

              更新 无法在 Windows 资源管理器或命令窗口中删除旧的 apk 文件(即使我以管理员权限打开它),但在我的 FileZilla FTP 客户端应用程序中查看它时,我可以删除它。显然,这比重启电脑方便多了。

              【讨论】:

                【解决方案13】:

                zipalign工具无法访问源文件,需要验证路径、文件名、扩展名、权限...

                【讨论】:

                  【解决方案14】:

                  添加我的解决方案:

                  我的问题是我的资产文件夹太大了,一定是在某种程度上弄乱了压缩。我必须删除资产文件夹中的文件(或将它们添加到 _pre_production)。

                  【讨论】:

                    【解决方案15】:

                    我的 zipalign 命令也有同样的问题。输出路径是正确的,但输出路径中提供的文件夹不存在,所以我手动创建了文件夹,然后一切正常。

                    【讨论】:

                      【解决方案16】:

                      我必须从

                      的项目文件夹中运行 cmd

                      C:\用户\用户\文档\电话 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

                      【讨论】:

                        【解决方案17】:

                        在 Windows 上为我解决问题的方法是将输出文件夹设置为驱动器 C:

                        【讨论】:

                          【解决方案18】:

                          这是你的错误
                          您尝试先设置或引用 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 将立即构建。

                          【讨论】:

                            【解决方案19】:

                            Mac 版

                            因为编码的结果不匹配你必须这样做:

                            1. 打开 eclipse.ini
                            2. 添加-Dfile.encoding=utf-8

                            【讨论】:

                            • 你试试?我用这个方法成功解决了
                            猜你喜欢
                            • 1970-01-01
                            • 2021-02-01
                            • 2012-10-17
                            • 2016-09-17
                            • 2018-02-07
                            • 2014-08-29
                            • 2015-05-01
                            • 1970-01-01
                            • 2017-03-16
                            相关资源
                            最近更新 更多