发布应用时无法找到zip-align

时间:2014-06-27 00:15:32

标签: android zipalign

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工具(今天发布了23个)和SDK平台工具(今天也发布了20个)。我有一个APK,但如果我尝试将其上传到Google Play,我会收到一个错误,抱怨它没有拉链对齐。

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

25 个答案:

答案 0 :(得分:221)

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

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

答案 1 :(得分:96)

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

Eclipse 下拉菜单窗口 Android SDK Manager 中,选中 Android SDK Build-tools Rev. 20 ,然后点击安装 n 包... 按钮开始安装。

答案 2 :(得分:20)

安装后可以使用

Android SDK Build-tools Rev.20

答案 3 :(得分:9)

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

答案 4 :(得分:8)

我决定只为这个制作一个视频..我一直把它粘贴到工具中但唉,这对我来说不起作用。我把它移到了平台工具上并立即发布了。之后必须重启eclipse。

Tutorial for fixing missing zipalign

答案 5 :(得分:7)

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

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

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

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

答案 6 :(得分:5)

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 :(得分:4)

随着SDK更新到20,构建和平台工具的第20版以及23个sdk通行费,谷歌已经做了很多事情。

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

更新:自从Android Studio 0.8.1发布后,问题现在似乎已修复......
您只需更新build.gradle即可再次正常使用

compileSdkVersion 20

buildToolsVersion "20.0.0"

targetSdkVersion 20

如果您使用任何compat或支持库

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

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

答案 8 :(得分: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”)必须与您的构建工具版本匹配。

祝你好运:)

答案 9 :(得分:3)

检查SDK管理器,它已经安装了&#34; build-tools&#34;。我的处于默认状态,没有这样做。

答案 10 :(得分:2)

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

答案 11 :(得分: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 Build-tools&#39;显示为安装在Android SDK Manager&#39;中。那么,我复制zipalign.exe(我从Android Studio安装中获得的!)和已签名的应用程序的位置现在再次自动压缩!

答案 12 :(得分:1)

从Gradle的Android插件,修订版2。2。0(2016年9月)开始,不推荐使用Zipalign gradle任务。

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

点击here了解详细说明。

  

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

答案 13 :(得分: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

答案 14 :(得分:1)

解决此问题的步骤,

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

答案 15 :(得分:1)

我通过RUN以管理员@你的SDK Manager.exe解决了目录C:\ Program Files \ Android SDK

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

答案 16 :(得分:1)

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

中复制它

答案 17 :(得分:1)

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

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

答案 18 :(得分: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
    
  6. 如果它对您有所帮助,那么您的反馈就会很好。

答案 19 :(得分:0)

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

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

答案 20 :(得分:0)

Google使用构建工具版本修复此错误:23.0.3 现在zipalign打包得当,一切正常。

答案 21 :(得分:0)

通常,zipalign.exe已关闭&#34; Android经理&#34;(另外,&#34; Android&#34;,&#34; Android SDK&#34;等),所以你可以 在Windows搜索中搜索&#34; Android Manager&#34; ,并在命令上方提供 righ-click 打开文件位置 。 您可能在: 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

答案 22 :(得分:0)

在我的案例中,SDK Build Tools 20已经安装完毕。 我在工具文件夹中复制了zipalign.exe但没有成功。

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

所以我做了:

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

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

答案 23 :(得分:0)

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

答案 24 :(得分:0)

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