не удается найти выравнивание по 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, но кто-нибудь знает, что вызывает это и как это исправить?

JMRboosties
источник
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
Suno
источник
8

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

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

digiboomz
источник
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
loganyu
источник
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.+'

DooMMasteR
источник
Уточнение: переместите двоичный файл из папки 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, что он установил «инструменты сборки». Моя в состоянии по умолчанию этого не делала.

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

Удачи :)

centy
источник
2

С Android Studio 1.0 вам нужно использовать zipAlignEnabled true

Никлас
источник
1

Мое исправление сработало при копировании zipalign.exe из sdk \ build-tools \ android-4.4W в sdk \ platform-tools , как показано в видео, связанном с digiboomz, и не сработало, скопировав его в sdk \ tools

MackTheKnife
источник
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!

fr1550n
источник
1

Я решил RUN как администратор @ ваш SDK Manager.exe в каталоге C: \ Program Files \ Android SDK

после этого вы получите обновленные инструменты сборки в любом репозитории

indrablake
источник
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

Sfseyhan
источник
0

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

Энди Туманов
источник
0

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

Regis St-Gelais
источник
0

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

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

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

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

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

Флавио Баттоккио
источник
0

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

jvmvik
источник
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».

Дунг Нгуен
источник