nie można znaleźć wyrównania zip podczas publikowania aplikacji


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.

To jest wiadomość, którą otrzymałem, gdy próbowałem opublikować moją aplikację. Używam najnowszej wersji Android SDK Tools (23, która została dzisiaj wydana) i SDK Platform-tools (20, która również została wydana dzisiaj). Mam z niego plik APK, ale gdy próbowałem go przesłać do Google Play, pojawił się błąd, narzekając, że nie jest wyrównany do zip.

Uruchomienie zipalign ręcznie naprawia apk, ale czy ktoś wie, co to powoduje i jak to naprawić?


7
Najnowsze narzędzia SDK (23) nie zostały prawidłowo spakowane. Napotkał problemy z wieloma narzędziami w tej wersji.
MeetM

Odpowiedzi:


223

Miałem ten sam problem. Aby to naprawić, kopiuję plik Zipalign z folderu sdk / build-tools / android-4.4W do sdk / tools /

Edytowano: ponieważ Google zaktualizował SDK dla Androida, nowe narzędzia do kompilacji rozwiązują ten problem. Dlatego zachęciłem wszystkich do aktualizacji do Android SDK Build-tools 20, zgodnie z sugestią Panga w poniższym poście.


1
Musi to być kopia pliku, a nie symboliczne łącze w systemie OSX. Użyłem linku symbolicznego (co zwykle jest wystarczające) i nadal go nie znaleziono.
SnowInferno

7
Znalazłem to pod - sdk \ build-tools \ 20.0.0
shimi_tap

13
Nie kopiuj exe z innego katalogu. Użyj Menedżera SDK, aby zainstalować narzędzia SDK Build Tools v20
darksider474

2
Korzystając z ant build-release, należy dodać sdk.buildtools = 19.1.0 lub = 20.0.0 do project.properties. Należy również zauważyć, że zestaw właściwości zipalign został zmieniony w pliku ANT build.xml, aby wskazywał na prawą wersję łańcucha narzędzi.
david

10
Jak wspomniano w niektórych odpowiedziach, musisz zainstalować narzędzia Android SDK Build-tools Rev. 20. Tak. Ale nadal pojawia się ten sam błąd. Następnie muszę skopiować Zipalign z „sdk / build-tools / 20.0.0” do „sdk / tools /”
Kevin

96

Naprawiłem to, instalując Android SDK Build-tools 20:

W EclipseMenu rozwijaneOknoMenedżer Android SDK , zaznacz narzędzia Android SDK Build-tools Rev. 20 , a następnie kliknij przycisk Zainstaluj n pakietów… , aby rozpocząć instalację.


26
Po zrobieniu tego musiałem ponownie uruchomić zaćmienie
Cigogne Eveillée

Wersja 23.0.0 naprawia ten problem ... Jest to przydatne w przypadku najnowszej wersji
Zala Janaksinh

20

Staje się użyteczne, jeśli zainstalujesz

Android SDK Build-tools Rev.20

8

Postanowiłem po prostu nakręcić film do tego… Wklejałem go do narzędzi, ale niestety to nie działało. Przeniosłem go do narzędzi platformowych i voila publikowania od razu… później muszę ponownie uruchomić Eclipse.

Samouczek dotyczący naprawy brakującego zipalign


1
Świetne wideo dzięki, dla mnie zadziałało, dodając zipalign do narzędzi, a nie narzędzi platformy
shimi_tap

To łącze pomogło mi, ale zamiast przenieść plik zipalign.exe z narzędzi do kompilacji do narzędzi platformy, właśnie dodałem folder narzędzi do kompilacji o nazwie PATH env
Paul Samsotha

8

Użyłem pełnej ścieżki zipalign. W przypadku Maca znalazłem plik wykonywalny w Finderze i kliknąłem go. Następnie, aby opublikować moją aplikację, uruchomiłem

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

zamiast

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

2
W przypadku systemu Windows (moja ścieżka zipalign): C:\Users\Machine\AppData\Local\Android\Sdk\build-tools\27.0.3\zipalign.exe Mój przykład 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'
Nadim

8

Mac / Linux:

To zadziałało dla mnie (możesz chcieć zastąpić 22.0.1 wersją twoich narzędzi do kompilacji):

Edycja: ~ / .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

I biegnij:

source ~/.bashrc

lub po prostu zamknij terminal i uruchom go ponownie.


tylko jedna edycja: przegapiłeś „eksport” w ostatniej linii. :-)
Manan Shah

7

Na komputerze Mac wykonałem następujące czynności:

  1. Znajdź to w systemie O / S (już pobrałem narzędzia do kompilacji dla wersji 19 i 20)

  2. Naciśnij Ctrl-Open, aby zezwolić aplikacjom z internetu

  3. Przenieś go z folderu sdk / build-tools / android-4.4W do sdk / tools /. Uff.


4

Wraz z aktualizacją SDK do 20, wersją 20 narzędzi kompilacji i platformy oraz 23 opłatami SDK, Google przeniósł wiele rzeczy.

Jednak Gradle (jeśli używasz Android Studio) nie został jeszcze zaktualizowany, aby odzwierciedlić te zmiany, jak stwierdzono w innych odpowiedziach, kopiowanie pliku zipalignbinarnego do programu /sdk/tools/powinno na razie załatwić sprawę.

AKTUALIZACJA: od czasu wypuszczenia Android Studio 0.8.1 problem wydaje się już rozwiązany…
wystarczy zaktualizować swoje build.gradlei powinno znowu działać dobrze

compileSdkVersion 20

buildToolsVersion "20.0.0"

targetSdkVersion 20

i jeśli używasz jakiejkolwiek kompatybilnej lub wspierającej biblioteki

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

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


Dla wyjaśnienia przenieś plik binarny z folderu SDK systemu Android do folderu SDK w Android Studio. Na przykład: C: \ Program Files (x86) \ Android \ android-sdk \ tools \ zipalign.exe do C: \ Program Files (x86) \ Android \ android-studio \ sdk \ tools \ zipalign.exe
Joshua G

Google zaktualizował Android Studio (0.8.1) i problemy nie występują już w tej nowszej wersji
DooMMasteR

3

Sprawdź w menedżerze SDK, czy zainstalował on "narzędzia do budowania". Mój w stanie domyślnym tego nie zrobił.


3

Jeśli używasz gradle, po prostu zaktualizuj wtyczkę ypur gradle!

Zmień wiersz w build.gradle z:

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

do:

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

Mi to pasuje.

Zwróć uwagę, że zmienna buildToolsVersion (dla mnie „20.0.0”) musi odpowiadać twojej wersji narzędzi do budowania.

Powodzenia :)



1

Moja poprawka działała kopiując zipalign.exe z sdk \ build-tools \ android-4.4W do sdk \ platform-tools , jak pokazano na wideo połączonym przez digiboomz, i nie działało kopiując go w sdk \ tools


1

Jeśli polecenie zipalign nie zostanie znalezione w wierszu poleceń, dodaj ścieżkę pliku zipalign do zmiennych środowiskowych. Jak wspomniano powyżej, nigdy nie warto zmieniać lokalizacji pliku exe.

Użytkownicy systemu Windows:

Dodać do User->PATH->"path to zipalign folder"

W moim przypadku była to ścieżka C:\adt-bundle-windows-x86_64-20140702\sdk\build-tools\android-4.4W. W tym folderze znajduje się zipalign.exe

Ten link może pomóc w ustawieniu ścieżki i zrozumieniu jej http://www.voidspace.org.uk/python/articles/command_line.shtml#path


1

Używam Eclipse i to zepsuło się podczas aktualizacji. Oto, co zadziałało dla mnie, ponieważ nie zadziałały powyższe odpowiedzi.
Sprawdziłem, gdzie plik build.xml programu Ant powinien znaleźć plik zipalign.exe.

W: C:\Development\Android\android-sdk\tools\ant\build.xml zipalign definiuje się jako:

<property name="zipalign" location="${android.build.tools.dir}/zipalign${exe}" />

co wskazuje na jego oczekiwane w:

C:\Development\Android\android-sdk\build-tools\18.0.1

Ten katalog odpowiada najwyższej wersji „Android SDK Build-tools” wyświetlanej jako zainstalowanej w „Android SDK Manager”. Właśnie tam skopiowałem plik zipalign.exe (który uzyskałem z instalacji Android Studio!), A podpisane aplikacje są teraz ponownie automatycznie spakowane!


1

rozwiązałem przez RUN jako Administrator @ your SDK Manager.exe w katalogu C: \ Program Files \ Android SDK

po tym otrzymasz zaktualizowane narzędzia do budowania i dowolne repozytorium


1

Kroki, aby to naprawić,

  1. Zainstaluj najnowszą wersję narzędzi do tworzenia zestawu SDK systemu Android
  2. Sprawdź, czy plik zipalign.exe jest dostępny w folderze android-sdk \ build-tools \ np. Android-sdk \ build-tools \ 21.1.0 \
  3. W niektórych starszych wersjach Androida nie można znaleźć pliku zipalign.exe. Nie panikuj, sprawdź inną wersję, w której dostępny jest zipalign.
  4. Otwórz plik project.properties i skonfiguruj narzędzia do kompilacji, aby wskazywały plik, w którym znajduje się plik zipalign.exe. np. sdk.buildtools = 21.1.0.
  5. Uruchom ponownie zaćmienie i spróbuj ponownie wyeksportować. Powinno działać.

1

Na komputerze Mac z zainstalowanym systemem OSX 10.10.5, Android Studio i SDK ścieżka to

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

1

Zadanie gradle Zipalign jest przestarzałe od czasu wtyczki Android dla Gradle, wersja 2.2.0 (wrzesień 2016).

Jeśli chcesz nadal go używać, dodaj android.useOldPackaging = true do pliku gradle.properties.

Kliknij tutaj, aby uzyskać szczegółowe wyjaśnienia.

Poprawia wydajność kompilacji poprzez przyjęcie nowego domyślnego potoku pakowania, który obsługuje kompresowanie, podpisywanie i wyrównywanie w jednym zadaniu. Możesz powrócić do używania starszych narzędzi do tworzenia pakietów, dodając android.useOldPackaging = true do pliku gradle.properties. Podczas korzystania z nowego narzędzia do pakowania zadanie zipalignDebug nie jest dostępne. Możesz jednak utworzyć je samodzielnie, wywołując metodę createZipAlignTask (String nazwa_zadania, File inputFile, File outputFile). Podpisywanie APK wykorzystuje teraz schemat podpisu APK v2 oprócz tradycyjnego podpisywania JAR. Wszystkie platformy Android akceptują wynikowe pliki APK. Wszelkie modyfikacje tych plików APK po podpisaniu unieważniają ich podpisy w wersji 2 i uniemożliwiają instalację na urządzeniu. Zablokować cytat


0

zipalignzostał przeniesiony do build-tools\19.1.0i build-tools\20.0.0zakładam, że powinieneś użyć jednego z nich w zależności od docelowego SDK


0

Naprawiłem to, odinstalowując platformę Android SDK (4,4 W), a następnie ponownie ją instalując. Po instalacji zrestartowałem także Eclipse.


0

W moim przypadku SDK Build Tools 20 były już zainstalowane. Skopiowałem zipalign.exe do folderu Tools, ale bez powodzenia.

Potem zauważyłem, że zaktualizowałem Eclipse bez usuwania lub zmiany nazwy starego folderu.

Więc zrobiłem:

1) Zmieniono nazwę starego folderu Eclipse 2) Ponownie uruchomiono Eclipse

Eclipse poprosił o poprawienie preferencji Androida, ponieważ problemem był Eclipse, który nadal próbował użyć starego folderu


0

Google napraw ten błąd za pomocą wersji narzędzi do kompilacji: 23.0.3. Teraz zipalign jest prawidłowo zapakowany i wszystko działa dobrze.


0

Zwykle plik zipalign.exe jest zamknięty w „Android manager” (także „Android”, „Android SDK” itp.), Więc możesz wyszukać „Android Manager” w wyszukiwaniu w systemie Windows, kliknąć prawym przyciskiem myszy nad poleceniem i otworzyć lokalizacja pliku . Prawdopodobnie jesteś w: coś \ Android \ android-sdk \ tools . Następnie wystarczy zwrócić folder i przejść do Android \ android-sdk \ build-tools \ 23.0.3 . Jest tam zipalign, być może nie będziesz w stanie go użyć za pomocą dwukrotnego kliknięcia, więc musisz skopiować całą ścieżkę pliku zipalign do użycia w CMD , ostateczny kod, który musisz wprowadzić, będzie wyglądał mniej więcej tak:

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


0

Kiedy byłem całkowicie zdesperowany, wykonałem następujące czynności, które pozwoliły mi znaleźć oficjalny plik zipalign.exe . Krótka odpowiedź to skorzystanie z linku z oficjalnej (ale nie publicznej :-) części strony:

https://dl.google.com/android/repository/build-tools_r28-rc1-windows.zip

Jeśli korzystasz z tego rachunku po 2018 roku, prawdopodobnie potrzebujesz pełnego wyjaśnienia:

  1. Otwórz Android Studio i gotowe

    Android Studio->Tools->Android->SDK Manager->Android SDK->SDK update site
  2. Wpisz link do edytora tekstu i otwórz go w przeglądarce. W moim przypadku zadziałał pierwszy link:

    https://dl.google.com/android/repository/repository2-1.xml
  3. Poszukaj najnowszych narzędzi do tworzenia pakietów. W moim przypadku był to build-tools_r28-rc1-windows.zip , ale możesz znaleźć najnowsze w swoim czasie

    Ctrl+F build-tools_
  4. Zastąp w adresie URL ostatnią część znalezioną nazwą pakietu, tak jak zrobiłem:

    https://dl.google.com/android/repository/build-tools_r28-rc1-windows.zip
  5. Pobierz pakiet, rozpakuj go i na szczęście znajdź oficjalny plik:

    zipalign.exe

Jeśli to ci pomoże, Twoja opinia jest mile widziana.


Android Studio-> Narzędzia-> Android-> Menedżer SDK-> Android SDK -> Narzędzia SDK -> zaznacz "Android SDK Build-Tools 28-rc1" , następnie zastosuj , zainstalujesz narzędzia do budowania i możesz znaleźć zipalign. exe w SDK \ build-tools \ 28.0.0-rc1 po zainstalowaniu.
Richard Chan,

Masz rację, powinien być zainstalowany, ale nie został zainstalowany w moim przypadku. Sprawdziłem. Ten przepis jest dla tych, którzy nie mają tego pliku po wszystkich próbach.
Roman

0

Rozwiązałem ten problem, wykonując następujące czynności:

Otwórz Android Studio> Preferencje> Narzędzia SDK i zaznacz „Android SDK Build-Tools”

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.