не удается найти выравнивание по zip при публикации приложения


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) не были упакованы должным образом. Столкнулся с проблемами со многими инструментами в этом выпуске.
MeetM

Ответы:


223

У меня такая же проблема. И чтобы это исправить, копирую файл Zipalign из папки sdk / build-tools / android-4.4W в sdk / tools /

Отредактировано: поскольку Google обновил SDK для Android, новые инструменты сборки решают эту проблему. Поэтому я призвал всех обновиться до Android SDK Build-tools 20, как предложил Панг в сообщении ниже.


1
Это должна быть копия файла, а не символическая ссылка в OSX. Я использовал символьную ссылку (которой обычно достаточно), но ее все равно не нашли.
SnowInferno

7
Я нашел его в - sdk \ build-tools \ 20.0.0
shimi_tap

13
Не копируйте exe из другого каталога. Используйте SDK Manager для установки SDK Build tools v20
darksider474,

2
При использовании ant build-release необходимо добавить sdk.buildtools = 19.1.0 или = 20.0.0 в project.properties. Также обратите внимание, что набор свойств zipalign был изменен в ANT build.xml, чтобы указать на правильную версию цепочки инструментов.
Дэвид

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
Cigogne Eveillée

Rev. 23.0.0 исправляет эту проблему ... Это полезно для последней сборки
Zala Janaksinh

20

Его можно будет использовать, если вы установите

Android SDK Build-tools Rev.20

8

Я решил снять для этого видео ... Я продолжал вставлять его в инструменты, но, увы, у меня это не сработало. Я переместил его в платформенные инструменты и сразу же опубликовал… После этого нужно перезапустить eclipse.

Учебник по исправлению отсутствующего zipalign


1
Отличное видео, спасибо, для меня это сработало, добавив zipalign к инструментам, а не к инструментам платформы
shimi_tap

Эта ссылка мне помогла, но вместо перемещения zipalign.exe из инструментов сборки в инструменты платформы я просто добавил папку инструментов сборки PATH env
Пол Самсота

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 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'
Надим

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. Найдите его в o / s (я уже скачал инструменты сборки для 19 и 20)

  2. Нажмите Ctrl-Open, чтобы разрешить приложения из Интернета.

  3. Переместите его из папки sdk / build-tools / android-4.4W в sdk / tools /. Уф.


4

С обновлением 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.+'


Уточнение: переместите двоичный файл из папки sdk android в папку sdk студии android. Например: C: \ Program Files (x86) \ Android \ android-sdk \ tools \ zipalign.exe в C: \ Program Files (x86) \ Android \ android-studio \ sdk \ tools \ zipalign.exe
Джошуа Г.

Google обновил студию Android (0.8.1), и с этой новой версией проблем больше не возникает
DooMMasteR 01

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") должна соответствовать вашей версии инструментов сборки.

Удачи :)



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, и это сломалось во время обновления. Вот что сработало для меня, а ответы выше - нет.
Я проверил, где 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», отображаемой как установленная в «Android SDK Manager». Итак, именно здесь я скопировал zipalign.exe (который я получил при установке Android Studio!), И подписанные приложения теперь снова автоматически выравниваются по zipalign!


1

Я решил RUN как администратор @ ваш 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

На Mac с OSX 10.10.5, установленными Android Studio и SDK путь следующий:

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

1

Задача Gradle Zipalign устарела, начиная с подключаемого модуля Android для Gradle версии 2.2.0 (сентябрь 2016 г.).

Если вы хотите и дальше использовать его, добавьте android.useOldPackaging = true в свой файл gradle.properties.

Щелкните здесь для подробного объяснения.

Повышает производительность сборки за счет внедрения нового конвейера упаковки по умолчанию, который обрабатывает архивирование, подписание и выравнивание в одной задаче. Вы можете вернуться к использованию старых инструментов упаковки, добавив android.useOldPackaging = true в свой файл gradle.properties. При использовании нового инструмента упаковки задача zipalignDebug недоступна. Однако вы можете создать его самостоятельно, вызвав метод createZipAlignTask (String taskName, File inputFile, File outputFile). Для подписания APK теперь используется схема подписи APK v2 в дополнение к традиционной подписи JAR. Все платформы Android принимают полученные APK. Любая модификация этих APK после подписания делает их подписи v2 недействительными и предотвращает установку на устройстве. Blockquote


0

zipalignбыл перемещен, build-tools\19.1.0и build-tools\20.0.0я предполагаю, что вы должны использовать один из них в зависимости от вашего целевого SDK


0

Я исправил это, удалив платформу Android SDK (4.4W), а затем переустановив ее. Я также перезапустил Eclipse после установки.


0

В моем случае SDK Build Tools 20 уже был установлен. Я скопировал zipalign.exe в папку «Инструменты», но безуспешно.

После этого я заметил, что обновил Eclipse, не удаляя и не переименовывая старую папку.

Так я и сделал:

1) Переименована старая папка Eclipse 2) Перезапущена Eclipse

Eclipse попросил исправить настройки Android, потому что проблема заключалась в Eclipse, который все еще пытался использовать старую папку


0

Google исправил эту ошибку с помощью версии инструментов сборки: 23.0.3. Теперь zipalign упакован правильно, и все работает нормально.


0

Обычно zipalign.exe находится рядом с «Диспетчером Android» (также «Android», «Android SDK» и т. Д.), Поэтому вы можете выполнить поиск «Android Manager» в поиске Windows, щелкнуть правой кнопкой мыши над командой и открыть расположение файла . Вы, вероятно, находитесь в: 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-> Tools-> Android-> SDK Manager-> Android SDK -> SDK Tools -> отметьте «Android SDK Build-Tools 28-rc1» , затем примените , вы установите инструменты сборки и найдете zipalign. exe в SDK \ build-tools \ 28.0.0-rc1 после установки.
Ричард Чан

Вы правы, он должен был быть установлен, но не был установлен в моем случае. Я проверил. Этот рецепт для тех, у кого этого файла нет после всех попыток.
Роман

0

Я исправил эту проблему, выполнив следующие действия:

Откройте Android Studio> Настройки> Инструменты SDK и отметьте «Android SDK Build-Tools».

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.