发布应用程序时找不到zip-align


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,但是有人知道是什么原因以及如何修复吗?


7
最新的sdk工具(23)未正确打包。在此版本中,许多工具都遇到了问题。
2014年

Answers:


223

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

编辑:自从Google更新了Android版SDK以来,新的构建工具确实解决了此问题。因此,我鼓励所有人按照Pang在以下文章中的建议更新至Android SDK Build-tools 20


1
它必须是文件的副本,而不是OSX中的符号链接。我使用了符号链接(通常就足够了),但仍然找不到。
SnowInferno 2014年

7
我在sdk \ build-tools \ 20.0.0下找到它
shimi_tap 2014年

13
不要从另一个目录复制exe。使用SDK Manager安装SDK构建工具v20
darksider474

2
使用ant build-release时,需要将sdk.buildtools = 19.1.0或= 20.0.0添加到project.properties。还要注意,在ant build.xml中已更改zipalign属性集,以指向righ工具链版本。
大卫

10
如安装Android SDK Build-tools Rev. 20所需的一些答案所述,我做到了。但是仍然出现相同的错误。然后我必须将Zipalign从“ sdk / build-tools / 20.0.0”复制到“ sdk / tools /”
凯文

96

我通过安装Android SDK Build-tools 20修复了该问题:

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


26
完成此操作后,我不得不重新启动Eclipse
CigogneEveillée2014年

Rev. 23.0.0解决了这个问题...对于最新的版本很有用
Zala Janaksinh

20

如果您安装,它将变得可用

Android SDK Build-tools Rev.20

8

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

修复丢失的zipalign的教程


1
很棒的视频,对我来说,它是通过在工具而非平台工具中添加zipalign来实现的
shimi_tap 2014年

该链接确实对我有所帮助,但是我没有将zipalign.exe从构建工具移动到平台工具,而是将构建工具文件夹添加到PATH env
Paul Samsotha

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

2
对于Windows(我的zipalign路径):C:\Users\Machine\AppData\Local\Android\Sdk\build-tools\27.0.3\zipalign.exe 我的示例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'
Nadim

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

或者只是关闭终端,然后重新启动。


只需一个编辑:您错过了最后一行中的“导出”。:-)
Manan Shah

7

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

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

  2. 按Ctrl-Open允许来自互联网的应用

  3. 将其从sdk / build-tools / android-4.4W文件夹移至sdk / tools /。ew。


4

随着SDK更新到20,构建和平台工具的版本20和sdk收费的23,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
Joshua G

谷歌已经更新了android studio(0.8.1),这个新版本不再出现问题
DooMMasteR 2014年

3

检入SDK管理器,确认它已安装“构建工具”。我的处于默认状态,未执行此操作。


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”)必须与您的版本的build-tools相匹配。

祝好运 :)



1

我的修复程序可以将zipalign.exe从sdk \ build-tools \ android-4.4W复制sdk \ platform-tools,如digiboomz链接的视频所示,并且无法在sdk \ tools中复制


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


1

我使用Eclipse,并且在更新过程中中断了。这是对我有用的,因为以上答案没有。
我检查了蚂蚁的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!


1

我由RUN以Administrator @ @ SDK Manager.exe在目录C:\ Program Files \ Android SDK中解决了

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


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. 重新开始蚀,然后再次尝试导出。它应该工作。

1

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

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

1

自Android插件Gradle修订版2.2.0(2016年9月)起,Zipalign gradle任务已被弃用。

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

单击此处获取详细说明。

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



0

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


0

就我而言,已经安装了SDK Build Tools 20。我将zipalign.exe复制到“工具”文件夹中,但没有成功。

之后,我注意到我在不删除或重命名旧文件夹的情况下更新了Eclipse。

所以我做了:

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

Eclipse要求更正Android偏好设置,因为问题出在Eclipse,而Eclipse仍在尝试使用旧文件夹


0

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


0

通常,zipalign.exe是与“ Android管理器”(以及“ Android”,“ Android SDK”等)关闭的,因此您可以在Windows搜索中搜索“ Android Manager”,并在命令上方单击鼠标右键打开文件位置。您可能位于: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


0

当我完全绝望时,我进行了以下操作,从而找到了官方的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->工具-> Android-> SDK管理器-> Android SDK-> SDK工具->选中“ Android SDK Build-Tools 28-rc1”,然后应用,您将安装构建工具,并找到zipalign。安装后,SDK \ build-tools \ 28.0.0-rc1中的exe文件。
理查德·陈

您是对的,应该安装了它,但在我的情况下没有安装。我检查了。此食谱适用于在所有尝试后都没有此文件的用户。
罗马

0

我已通过以下方法解决了此问题:

打开Android Studio>“偏好设置”>“ SDK工具”,然后选中“ Android SDK Build-Tools”

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.