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

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,我得到了一个错误,抱怨说它没有alignment。

运行zipalign手动修复apk,但没有人知道是什么原因造成的,以及如何解决它?

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

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

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

Eclipse下拉菜单窗口Android SDKpipe理器中 ,选中Android SDK Build-tools Rev. 20 ,然后点击Install n package(s)…button开始安装。

如果你安装它变得可用

 Android SDK Build-tools Rev.20 

我决定为这个做一个video..我一直粘贴到工具,但唉,这不适合我。 我把它移动到平台工具和瞧发布立即..必须重新启动日食之后。

修复缺lesszipalign的教程

在Mac上,我做了以下操作:

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

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

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

我使用了zipalign的完整path。 对于mac,我在Finder中find可执行文件并点击它。 然后,发布我的应用程序,我跑了

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

代替

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

Mac / Linux:

这对我有用 (你可能想用你的构build工具的版本replace22.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 

或者closuresterminal并重新启动。

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

Gradle(如果您正在使用Android Studio)尚未更新以反映这些更改,如其他答案中所述,将zipalign二进制文件复制到/sdk/tools/应该执行此技巧。

更新:自从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.+'

检查SDKpipe理器,它已经安装了“构build工具”。 在它的默认状态下,没有这样做。

如果你正在使用gradle只是更新ypur gradle插件!

将build.gradle中的行更改为:

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

至:

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

这个对我有用。

请注意,variablesbuildToolsVersion(对于我“20.0.0”)必须匹配您的版本的构build工具。

祝你好运 :)

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

我的修复工作从sdk \ build-tools \ android-4.4W复制zipalign.exesdk \ platform-tools ,如digiboomz链接的video所示,并且不能在sdk \ tools中复制

如果zipalign命令没有从命令行添加到环境variableszipalign的文件path。 如上所述,改变exe文件位置永远不会好。

对于Windows用户:

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

在我的情况下,它的path是C:\adt-bundle-windows-x86_64-20140702\sdk\build-tools\android-4.4W 。 在那个文件夹中是zipalign.exe

这个链接可以帮助你设置path和理解它http://www.voidspace.org.uk/python/articles/command_line.shtml#path

我使用Eclipse,并在更新期间中断。 上面的答案没有。
我检查了ant的build.xml,希望findzipalign.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 SDKpipe理器”中的“Android SDK Build-tools”的最高版本。 所以,这就是我复制zipalign.exe(我从Android Studio安装中获得!)和签名的应用程序现在自动再次zipaligned!

我以pipe理员@你的SDK Manager.exe在目录C:\ Program Files \ Android SDK中运行

之后,你会得到更新的构build工具任何存储库

解决这个问题的步骤,

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

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

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

点击这里查看详细的解释。

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

zipalign被转移到build-tools\19.1.0build-tools\20.0.0 ,我想你应该使用其中的一个取决于你的目标SDK

我通过卸载Android SDK平台(4.4W),然后重新安装。 安装完成后,我也重启了Eclipse。

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

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

所以我做了:

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

Eclipse要求更正Android首选项,因为问题是Eclipse,那仍然试图使用旧的文件夹

在OS X 10.10.5的Mac上,安装了Android Studio和SDK的path是

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

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

通常zipalign.exe是“Androidpipe理器”(也就是“Android”,“Android SDK”等)的closures,所以你可以在Windowssearch中search“Android Manager” ,并在命令上方右击打开文件位置 。 您可能位于:\ android \ android-sdk \ tools 。 然后只需要返回一个文件夹,然后转到Android \ android-sdk \ build-tools \ 23.0.3 。 zipalign在那里,你可能不能使用它双击,所以你必须复制所有在CMD中使用的zipalign文件的path,你必须input的最终代码是这样的:

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