2011-01-03 3 views
27

Я получил эту ошибку при попытке экспортировать подписанный APK в ЗатменииОшибка во время работы zipalign

Ошибка при запуске zipalign: Невозможно открыть в почтовый архив

Я запустил Справка-> Проверить Обновления, чтобы убедиться, что последнее обновление установлено, и инструменты SDK также обновлены.

+1

Можете ли вы выполнить шаги в http://d.android.com/guide/publishing/app-signing.html#releasemode и дать вывод первой команды, которая дает ошибку? – sargas

ответ

3

Я удалил файл apk в каталоге Deploy, и тогда экспорт работал нормально.

61

Я получал такое же сообщение об ошибке. Поднял меня с ума, пока не обнаружил, что мой путь назначения недействителен.

Zipalign даст вам эту ошибку, даже если APK вполне допустимо, но

  • путь к APK является недействительным
  • назначения является недействительным или не существует
  • разрешения являются invalid (apk заблокирован другой программой)
+3

Отличный ответ. Так было с моей проблемой, в частности, потому, что путь назначения не существовал. Итак, УВЕДОМЛЕНИЕ: zipalign не будет создавать каталоги для вас. – ubzack

+3

Эта ошибка также возникает, когда первый путь недействителен. –

+1

Неправильные разрешения в каталоге также могут вызывать его. –

1

Я получил эту ошибку, потому что у меня не было права на запись в целевой каталог. Таким образом, изменение разрешения разрешило проблему.

+0

ls /var/lib/jenkins/workspace/PP_androidBuild/PatientPortal/platforms/android/build/outputs/apk/android-debug.apk -lthr -rw-r-- r-- 1 jenkins jenkins 5.9M Sep 8 13:10 /var/lib/jenkins/workspace/PP_androidBuild/PatientPortal/platforms/android/build/outputs/apk/android-debug.apk –

0

Иногда простой \ вместо пути/пути к целевому файлу может привести к этому. Дважды проверьте свои файлы мультиплатформенных муравьев!

6

У меня была такая же проблема, и да, это потому, что инструмент не мог распознать путь. Я использовал неправильную косую черту, потому что у меня были плохие советы от блога разработчиков. Команда

Пример строки, если файл «origin.apk» находится в папке под названием «хранение» в каталоге C:

zipalign -f -v 4 “c:\storage\origin.apk” “c:\storage\done.apk” 

Убедитесь, что вы используете слэш выше ввода ключа ... много из «примеров», которые я видел, использует один ключ сдвига, и это не сработает. Это займет apk под названием «origin.apk» и zipalign, а затем сохранит его в том же каталоге, что и файл «done.apk».

Возможно, это только на Vista, я не знаю. Я использую 32-разрядную Windows Vista.

+0

Итак, в Windows используйте обратную косую черту :), спасибо, сделал это для меня. – Tycho

0

Если файл назначения уже существует и открыт другим процессом, вы увидите эту ошибку.

Метод решения: переименуйте файл назначения или закройте приложение, которое уже открывает файл.

-2

Для макинтош

Поскольку результат кодирования не соответствует вы должны сделать это:

  1. открыт eclipse.ini
  2. добавить -Dfile.encoding=utf-8
+0

вы пытаетесь? Я использовал этот метод успешно адресован – Mosquito

0

Проверьте доступное пространство на целевой диск.Я получил ту же ошибку, потому что мой диск был заполнен :-)

0

В моем случае проблема была в папке с именем utf-8. Я сменил его на английский и работал. Я использую Windows 8 x64 Enterprise edition.

0

Эта проблема возникла для меня, когда у меня была папка bin моего проекта, открытая в Проводнике Windows.

Затем я попытался удалить старый файл apk (который инструмент Export безуспешно пытался переписать), но я не мог этого сделать, поскольку у меня не было необходимого разрешения или потому что у какого-либо другого процесса была блокировка на файл.

Решение состояло в том, чтобы перезагрузить компьютер, который освободил блокировку файла apk. Инструмент Eclipse Export затем работал нормально.

Обновление Не удалось удалить старый файл apk в проводнике Windows или в окне командной строки (даже когда я открыл его с правами администратора), но я мог удалить apk при его просмотре в моем FTP-приложении FileZilla. Очевидно, что это намного удобнее перезагрузки компьютера.

0

zipalign инструмент не может получить доступ к исходному файлу, так что вы должны проверить путь, имя файла, расширение, разрешение ...

3

я должен был обеспечить полный путь без знака APK файла: платформ /android/build/outputs/apk/android-release-output.apk

2

В моем случае я запустил команду из каталога, в котором находился неподписанный apk, и он отлично работал.

cd /platforms/android/build/outputs/apk 
zipalign -v 4 android-release-unsigned.apk signed.apk 

Таким образом, мне не нужно беспокоиться о указании каталога.

ps: Я сделал это на ubuntu.

+0

$ zipalign zipalign: команда не найдена jenkins @ ip-172-31-22-20: ~/workspace/PP_androidBuild/PatientPortal $ sudo apt-get install zipalign Чтение списков пакетов ... Готово Строительное дерево зависимостей Чтение информации о состоянии ... Сделано E: Не удалось найти пакет zipalign –

+0

Установленный Zipalign теперь получает ошибку: jenkins @ ip-172-31-22-20: ~/workspace/PP_androidBuild/PatientPortal $/opt/android-sdk-linux/build-tools/23.0.1/zipalign -f -p 4 /var/lib/jenkins/workspace/PP_androidBuild/PatientPortal/platforms/android/build/outputs/apk/android-debug.apk Почтовый индекс утилита выравнивания Copyright (C) 2009 Проект с открытым исходным кодом Android Использование: zipalign [-f] [-p] [-v] [-z] infile.zip outfile.zip zipalign -c [-v] infile.zip –

2

Если ваш префикс APK превышает 2 ГБ, это также вызовет эту проблему. Протестировано с помощью средств сборки 23.0.1 на компьютере с Windows 10.

+0

Я получаю эту проблему, когда-нибудь найти обходное решение? Спасибо – Beloudest

+0

@Beloudest Извините, я не могу вспомнить, что произошло потом. Я проверил свои заметки и социальные сети, но ничего не связано с этим. Думаю, я всегда строил с OBB после этого, поэтому я не особо отметил. Извините, это не очень полезно. –

+0

Спасибо за ответ, из-за размера файла расширения для Android APK, который составляет 2 ГБ. 2 ГБ для основного и 2 ГБ для патча. Это отстой для меня и моего клиента, пытающегося сделать простой файл установки для пользователей в пустынях Африки. :( – Beloudest

0

Добавление на мое решение:

Моя проблема заключалась в том, что папка мой активов была слишком большой, и должно было баловаться с проносясь каким-то образом. Мне пришлось удалить файлы в папке с ресурсами (или добавить их в _pre_production).

-1

В моем случае, на Linux (Mint), я должен был установить разрешение на выполнение zipalign вручную, а затем он работал как шарм.

Смежные вопросы