123
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,但有谁知道是什么原因造成的以及如何修复它?

4

25 回答 25

224

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

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

于 2014-06-27T07:46:20.127 回答
96
于 2014-06-27T09:35:58.877 回答
20

如果您安装它就可以使用

Android SDK Build-tools Rev.20
于 2014-06-27T05:37:28.713 回答
8

我使用了 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
于 2015-01-23T22:37:47.727 回答
8

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

修复缺少的 zipalign 的教程

于 2014-07-05T19:35:23.187 回答
8

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

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

于 2015-06-02T19:55:54.820 回答
7

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

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

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

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

于 2014-10-09T19:27:32.393 回答
4

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

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

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

compileSdkVersion 20

buildToolsVersion "20.0.0"

targetSdkVersion 20

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

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

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

于 2014-06-27T13:53:33.307 回答
3

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

于 2014-07-03T14:52:44.530 回答
3

如果您使用的是 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”)必须与您的构建工具版本匹配。

祝你好运 :)

于 2014-08-06T19:16:16.293 回答
2

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

于 2014-12-05T19:27:56.983 回答
1

如果从命令行中找不到 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

于 2014-08-05T09:42:06.433 回答
1

解决此问题的步骤,

  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 并再次尝试导出。它应该工作。
于 2014-11-02T05:46:33.750 回答
1

我使用 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!

于 2014-08-14T09:51:03.123 回答
1

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

于 2014-07-15T16:12:13.947 回答
1

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

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

于 2015-01-13T02:07:14.623 回答
1

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

/Users/mles/Library/Android/sdk/build-tools/23.0.1/zipalign
于 2015-09-21T13:11:53.243 回答
1

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

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

点击这里查看详细说明。

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

于 2016-09-26T17:32:12.220 回答
0

在我的情况下,已经安装了 SDK Build Tools 20。我在 Tools 文件夹中复制了 zipalign.exe,但没有成功。

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

所以我做了:

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

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

于 2014-09-28T09:49:08.640 回答
0

zipalign已移至build-tools\19.1.0and build-tools\20.0.0,我假设您应该根据您的目标 SDK 使用其中一个

于 2014-06-27T12:30:51.617 回答
0

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

于 2014-08-06T14:18:34.657 回答
0

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

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

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

  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
    

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

于 2018-03-08T23:35:05.157 回答
0

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

于 2016-06-07T12:50:54.880 回答
0

通常 zipalign.exe 靠近“Android 管理器”(也称为“Android”、“Android SDK”等),因此您可以在 windows 搜索中搜索“Android 管理器”并在命令上方右键单击并打开文件位置。你可能在: something\ 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

于 2016-05-25T20:24:29.983 回答
0

我通过这样做解决了这个问题:

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

于 2020-01-10T17:56:46.190 回答