【问题标题】:cannot find zip-align when publishing app发布应用时找不到 zip-align
【发布时间】:2014-08-17 23:54:54
【问题描述】:
cannot.find.zip.align=The zipalign tool was not found in the SDK.

Please update to the latest SDK and re-export your application
or run zipalign manually.

Aligning applications allows Android to use application resources
more efficiently.

这是我尝试发布应用时收到的消息。我正在使用最新版本的 Android SDK Tools(今天发布的 23 个)和 SDK Platform-tools(今天发布的 20 个)。我从中获得了一个 APK,但如果我尝试将其上传到 Google Play,我会收到一个错误,抱怨它不是 zip 对齐的。

运行 zipalign 手动修复了 apk,但有谁知道这是什么原因以及如何修复它?

【问题讨论】:

  • 最新的sdk工具(23)未正确打包。此版本中的许多工具都面临问题。

标签: android zipalign


【解决方案1】:

我遇到了同样的问题。 为了修复它,我将 Zipalign 文件从 sdk/build-tools/android-4.4W 文件夹复制到 sdk/tools/

已编辑:由于 Google 更新了 Android SDK,新的构建工具确实解决了这个问题。所以我鼓励大家按照 Pang 在下面帖子中的建议更新到 Android SDK Build-tools 20

【讨论】:

  • 它必须是文件的副本,而不是 OSX 中的符号链接。我使用了符号链接(通常就足够了),但仍然找不到。
  • 我在-sdk\build-tools\20.0.0下找到了
  • 不要从其他目录复制 exe。使用 SDK Manager 安装 SDK Build tools v20
  • 使用 ant build-release 时,需要在 project.properties 中添加 sdk.buildtools=19.1.0 或 =20.0.0。另请注意,ANT build.xml 中的 zipalign 属性集已更改为指向正确的工具链版本。
  • 正如一些答案中提到的,您需要安装 Android SDK Build-tools Rev. 20。我做到了。但仍然得到同样的错误。然后我必须将 Zipalign 从“sdk/build-tools/20.0.0”复制到“sdk/tools/”
【解决方案2】:

我通过安装 Android SDK Build-tools 20 修复了它:

Eclipse下拉菜单窗口Android SDK Manager,勾选Android SDK Build-tools Rev. 20,然后点击Install n package(s)…按钮开始安装。

【讨论】:

  • 完成此操作后我不得不重新启动 eclipse
  • 修订版。 23.0.0 修复了这个问题...对最新版本很有用
【解决方案3】:

安装后就可以使用了

Android SDK Build-tools Rev.20

【讨论】:

    【解决方案4】:

    我决定为此制作一个视频。我一直将它粘贴到工具中,但可惜这对我不起作用。我将其移至平台工具并立即发布..之后必须重新启动 Eclipse。

    Tutorial for fixing missing zipalign

    【讨论】:

    • 很棒的视频,谢谢,对我来说,它通过将 zipalign 添加到工具而不是平台工具来工作
    • 这个链接确实帮助了我,但我没有将 zipalign.exe 从构建工具移动到平台工具,而是将构建工具文件夹添加到 PATH env
    【解决方案5】:

    我使用了 zipalign 的完整路径。对于 mac,我在 Finder 中找到了可执行文件并单击它。然后,为了发布我运行的应用程序

    /Users/username/development/sdk/tools/zipalign -v 4 HelloWorld-release-unsigned.apk HelloWorld.apk
    

    而不是

    zipalign -v 4 HelloWorld-release-unsigned.apk HelloWorld.apk
    

    【讨论】:

    • 对于 windows(我的 zipalign 路径):C:\Users\Machine\AppData\Local\Android\Sdk\build-tools\27.0.3\zipalign.exe My Example cmd & 'C:\Users\Machine\AppData\Local\Android\Sdk\build-tools\27.0.3\zipalign.exe' -v 4 './platforms/android/app/build/outputs/apk/release/app-release-unsigned.apk' './platforms/android/app/build/outputs/apk/release/app-release-signed.apk'
    【解决方案6】:

    Mac / Linux:

    这对我有用(你可能想用你的构建工具版本替换 22.0.1):

    编辑:~/.bashrc

    export ANDROID_HOME=~/Android/Sdk/
    export ANDROID_TOOLS=~/Android/Sdk/tools/
    export ANDROID_BUILD_TOOLS=~/Android/Sdk/build-tools/22.0.1/
    export ANDROID_PLATFORM_TOOLS=~/Android/Sdk/platform-tools/
    PATH=$PATH:$ANDROID_HOME:$ANDROID_TOOLS:$ANDROID_PLATFORM_TOOLS:$ANDROID_BUILD_TOOLS
    

    然后运行:

    source ~/.bashrc
    

    或者只是关闭终端并重新启动它。

    【讨论】:

    • 只有一次编辑:您错过了最后一行的“导出”。 :-)
    【解决方案7】:

    在 Mac 上,我执行了以下操作:

    1. 在 o/s 上找到(我已经下载了 19 和 20 的构建工具)

    2. 按 Ctrl-Open 以允许来自 Internet 的应用程序

    3. 将其从 sdk/build-tools/android-4.4W 文件夹移动到 sdk/tools/。呼。

    【讨论】:

      【解决方案8】:

      随着 SDK 更新到 20、版本 20 的构建和平台工具以及 23 的 sdk 费用,Google 已经移动了很多东西。

      Gradle(如果您使用的是 Android Studio)尚未更新以反映这些更改,正如其他答案中所述,将 zipalign 二进制文件复制到 /sdk/tools/ 现在应该可以解决问题。

      更新:自从 Android Studio 0.8.1 发布以来,这个问题现在似乎已经解决了……
      你只需要更新你的build.gradle,它应该会再次正常工作

      compileSdkVersion 20

      buildToolsVersion "20.0.0"

      targetSdkVersion 20

      如果您使用任何兼容或支持库

      compile 'com.android.support:appcompat-v7:20.+'

      compile 'com.android.support:support-v4:20.+'

      【讨论】:

      • 澄清一点,将二进制文件从您的 android sdk 文件夹移动到 android studio 的 sdk 文件夹。比如:C:\Program Files (x86)\Android\android-sdk\tools\zipalign.exe 到 C:\Program Files (x86)\Android\android-studio\sdk\tools\zipalign.exe
      • google 已更新 android studio (0.8.1) 并且此新版本不再出现问题
      【解决方案9】:

      检查 SDK 管理器,它已安装“构建工具”。我的默认状态下,没有这样做。

      【讨论】:

        【解决方案10】:

        如果您使用的是 gradle,只需更新 ypur gradle 插件!

        将 build.gradle 中的行从:

        classpath 'com.android.tools.build:gradle:0.9.+'
        

        到:

        classpath 'com.android.tools.build:gradle:0.11.+'
        

        它对我有用。

        请注意,变量 buildToolsVersion(对我来说是“20.0.0”)必须与您的构建工具版本匹配。

        祝你好运:)

        【讨论】:

          【解决方案11】:

          对于 Android Studio 1.0,您必须使用 zipAlignEnabled true

          【讨论】:

            【解决方案12】:

            我的修复工作是将 zipalign.exe 从 sdk\build-tools\android-4.4W 复制到 sdk\platform-tools,如 digiboomz 链接的视频所示,并且无法在 sdk\tools 中复制它

            【讨论】:

              【解决方案13】:

              如果在命令行中找不到 zipalign 命令,请将 zipalign 的文件路径添加到环境变量中。如上所述,更改 exe 文件位置永远不会好。

              对于 Windows 用户:

              添加到User->PATH->"path to zipalign folder"

              在我的例子中,路径是C:\adt-bundle-windows-x86_64-20140702\sdk\build-tools\android-4.4W。 在那个文件夹中是 zipalign.exe

              此链接可以帮助您设置路径并理解它http://www.voidspace.org.uk/python/articles/command_line.shtml#path

              【讨论】:

                【解决方案14】:

                我使用 Eclipse,但在更新过程中出现了问题。这对我有用,因为上面的答案没有。
                我检查了 ant 的 build.xml 应该在哪里找到 zipalign.exe。

                在:C:\Development\Android\android-sdk\tools\ant\build.xml zipalign 定义为:

                <property name="zipalign" location="${android.build.tools.dir}/zipalign${exe}" />
                

                表示其预期在:

                C:\Development\Android\android-sdk\build-tools\18.0.1
                

                该目录对应于“Android SDK 管理器”中安装的“Android SDK Build-tools”的最高版本。所以,这就是我复制 zipalign.exe(我从 Android Studio 安装中获得!)的地方,并且签名的应用现在会自动再次进行 zipalign!

                【讨论】:

                  【解决方案15】:

                  我以管理员身份运行@您的 SDK Manager.exe 在 C:\Program Files\Android SDK 目录中解决了

                  之后,您将在任何存储库中获得更新的构建工具

                  【讨论】:

                    【解决方案16】:

                    解决此问题的步骤,

                    1. 安装最新版本的 Android SDK Build-Tools
                    2. 检查 zipalign.exe 在文件夹 android-sdk\build-tools\ 中是否可用,例如android-sdk\build-tools\21.1.0\
                    3. 在某些旧版本的 android 中,您可能找不到 zipalign.exe。不要惊慌,检查 zipalign 可用的任何其他版本。
                    4. 打开您的 project.properties 文件并配置构建工具以指向 zipalign.exe 所在的位置。例如sdk.buildtools=21.1.0.
                    5. 重新启动 Eclipse 并再次尝试导出。它应该可以工作。

                    【讨论】:

                      【解决方案17】:

                      在装有 OSX 10.10.5、Android Studio 和 SDK 的 Mac 上,路径为

                      /Users/mles/Library/Android/sdk/build-tools/23.0.1/zipalign
                      

                      【讨论】:

                        【解决方案18】:

                        自 Android Plugin for Gradle,修订版 2.2.0(2016 年 9 月)以来,Zipalign gradle 任务已被弃用。

                        如果您想继续使用它,请将 android.useOldPackaging=true 添加到您的 gradle.properties 文件中。

                        详细解释点击here

                        通过采用新的默认打包管道来提高构建性能,该管道在一项任务中处理压缩、签名和压缩对齐。您可以通过将 android.useOldPackaging=true 添加到 gradle.properties 文件来恢复使用旧的打包工具。使用新的打包工具时,zipalignDebug 任务不可用。但是,您可以通过调用 createZipAlignTask(String taskName, File inputFile, File outputFile) 方法自己创建一个。 除了传统的 JAR 签名之外,APK 签名现在还使用 APK 签名方案 v2。所有 Android 平台都接受生成的 APK。签名后对这些 APK 的任何修改都会使其 v2 签名无效并阻止在设备上安装。 块引用

                        【讨论】:

                          【解决方案19】:

                          zipalign 已移至 build-tools\19.1.0build-tools\20.0.0,我认为您应该根据目标 SDK 使用其中之一

                          【讨论】:

                            【解决方案20】:

                            我通过卸载 Android SDK Platform (4.4W) 然后重新安装来修复它。 安装后我也重启了 Eclipse。

                            【讨论】:

                              【解决方案21】:

                              在我的例子中,SDK Build Tools 20 已经安装好了。 我将 zipalign.exe 复制到 Tools 文件夹中,但没有成功。

                              之后我注意到我更新了 Eclipse 并没有删除或重命名旧文件夹。

                              所以我做到了:

                              1) 重命名旧的 Eclipse 文件夹 2) 重启Eclipse

                              Eclipse 要求更正 Android 首选项,因为问题是 Eclipse,它仍在尝试使用旧文件夹

                              【讨论】:

                                【解决方案22】:

                                Google 使用构建工具版本修复了这个错误:23.0.3 现在 zipalign 已正确打包,一切正常。

                                【讨论】:

                                  【解决方案23】:

                                  通常 zipalign.exe 靠近“Android 管理器”(也称为“Android”、“Android SDK”等),因此您可以搜索“Android 管理器” 在 Windows 搜索中并在命令上方右击打开文件位置。 您可能在:某物\Android\android-sdk\tools。然后只需返回一个文件夹并转到 Android\android-sdk\build-tools\23.0.3。 zipalign 在那里,你可能无法通过双击使用它,所以你必须复制 zipalign 文件的所有路径以在 中使用CMD,您必须输入的最终代码将类似于:

                                  C:\Users\heitor\AppData\Local\Android\android-sdk\build-tools\23.0.1\zipalign.exe -v 4 android.apk android2.apk

                                  【讨论】:

                                    【解决方案24】:

                                    当我完全绝望时,我做了以下操作,这让我找到了official zipalign.exe。简短的回答是使用网站官方(但不公开:-)部分的链接:

                                    https://dl.google.com/android/repository/build-tools_r28-rc1-windows.zip
                                    

                                    如果你在 2018 年之后使用这个接收器,你可能需要完整的解释:

                                    1. 打开Android Studio

                                      Android Studio->Tools->Android->SDK Manager->Android SDK->SDK update site
                                      
                                    2. 在文本编辑器中写入链接并在浏览器中打开。就我而言,第一个链接对我有用:

                                      https://dl.google.com/android/repository/repository2-1.xml
                                      
                                    3. 寻找最新的软件包构建工具。在我的例子中,它是 build-tools_r28-rc1-windows.zip,但你可以在你的时间找到最新的

                                      Ctrl+F build-tools_
                                      
                                    4. 像我一样用找到的包名替换 URL 的最后一部分:

                                      https://dl.google.com/android/repository/build-tools_r28-rc1-windows.zip
                                      
                                    5. 下载包,解压,幸运找到官方文件:

                                      zipalign.exe
                                      

                                    如果对您有帮助,欢迎您的反馈。

                                    【讨论】:

                                    • Android Studio->Tools->Android->SDK Manager->Android SDK ->SDK Tools -> 勾选“Android SDK Build-Tools 28-rc1”,然后申请,安装构建工具,安装后可以在SDK\build-tools\28.0.0-rc1中找到zipalign.exe。
                                    • 你是对的,应该安装它,但在我的情况下没有安装。我检查了。这个食谱是为那些在尝试之后没有这个文件的人准备的。
                                    【解决方案25】:

                                    我已经解决了这个问题:

                                    打开 Android Studio > Preferences > SDK Tools 并检查“Android SDK Build-Tools”

                                    【讨论】:

                                      猜你喜欢
                                      • 1970-01-01
                                      • 2013-11-27
                                      • 1970-01-01
                                      • 1970-01-01
                                      • 1970-01-01
                                      • 1970-01-01
                                      • 1970-01-01
                                      • 1970-01-01
                                      • 2016-09-29
                                      相关资源
                                      最近更新 更多