zip-align kann beim Veröffentlichen der App nicht gefunden werden


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.

Dies ist die Nachricht, die ich erhalten habe, als ich versucht habe, meine App zu veröffentlichen. Ich verwende die neueste Version von Android SDK Tools (23, die heute veröffentlicht wurde) und SDK Platform-Tools (20, die auch heute veröffentlicht wurden). Ich habe eine APK daraus erhalten, aber wenn ich versucht habe, sie auf Google Play hochzuladen, habe ich eine Fehlermeldung erhalten, dass die Zip nicht ausgerichtet ist.

Das manuelle Ausführen von zipalign behebt das apk, aber weiß jemand, was dies verursacht und wie es behoben werden kann?


7
Die neuesten SDK-Tools (23) wurden nicht ordnungsgemäß verpackt. Probleme mit vielen Tools in dieser Version.
MeetM

Antworten:


223

Ich hatte das gleiche Problem. Und um das Problem zu beheben, kopiere ich die Zipalign-Datei aus dem Ordner sdk / build-tools / android-4.4W nach sdk / tools /

Bearbeitet: Seit Google das SDK für Android aktualisiert hat, beheben neue Build-Tools dieses Problem. Daher ermutigte ich alle, auf Android SDK Build-Tools 20 zu aktualisieren, wie von Pang im folgenden Beitrag vorgeschlagen.


1
Es muss eine Kopie der Datei sein und kein symbolischer Link in OSX. Ich habe einen Sym-Link verwendet (was normalerweise ausreicht) und er wurde immer noch nicht gefunden.
SnowInferno

7
Ich fand es unter - sdk \ build-tools \ 20.0.0
shimi_tap

13
Kopieren Sie die Exe nicht aus einem anderen Verzeichnis. Verwenden Sie das SDK Manager SDK Build - Tools v20 installieren
darksider474

2
Wenn Sie ant build-release verwenden, müssen Sie sdk.buildtools = 19.1.0 oder = 20.0.0 zu project.properties hinzufügen. Beachten Sie auch, dass der Zipalign-Eigenschaftensatz in der ANT build.xml so geändert wurde, dass er auf die Version der rechten Werkzeugkette verweist.
David

10
Wie in einigen der Antworten erwähnt, die Sie benötigen, um Android SDK Build-Tools Rev. 20 zu installieren. Aber immer noch den gleichen Fehler. Dann muss ich Zipalign von "sdk / build-tools / 20.0.0" nach "sdk / tools /" kopieren
Kevin

96

Ich habe es behoben, indem ich Android SDK Build-Tools 20 installiert habe:

In Eclipse - → Pull - Down - MenüFensterAndroid SDK - Manager , überprüfen Android SDK Errichten-Tools 20 Rev. , dann das Klicken Installieren n Paket (e) ... Taste Installation zu starten.


26
Danach

Rev. 23.0.0 behebt dieses Problem ... Es ist nützlich für den neuesten Build
Zala Janaksinh

20

Es wird verwendbar, wenn Sie installieren

Android SDK Build-tools Rev.20

8

Ich habe beschlossen, nur ein Video dafür zu machen. Ich habe es immer wieder in Tools eingefügt, aber leider hat das bei mir nicht funktioniert. Ich habe es sofort auf Plattform-Tools und Voila-Publishing verschoben. Danach muss Eclipse neu gestartet werden.

Tutorial zum Beheben fehlender Zipalign


1
Tolles Video, danke, für mich hat es funktioniert, indem ich die Zipalign zu den Tools und nicht zu den Plattform-Tools
hinzugefügt habe

Dieser Link hat mir geholfen, aber anstatt die zipalign.exe von den Build-Tools auf die Plattform-Tools zu verschieben, habe ich gerade den Build-Tools-Ordner PATH env hinzugefügt
Paul Samsotha

8

Ich habe den vollständigen Pfad von Zipalign verwendet. Für Mac habe ich die ausführbare Datei im Finder gefunden und darauf geklickt. Um meine App zu veröffentlichen, habe ich dann ausgeführt

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

anstatt

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

2
Für Windows (mein zipalign Pfad): C:\Users\Machine\AppData\Local\Android\Sdk\build-tools\27.0.3\zipalign.exe Mein Beispiel 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:

Dies hat bei mir funktioniert (möglicherweise möchten Sie 22.0.1 durch die Version Ihrer Build-Tools ersetzen ):

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

Und Renn:

source ~/.bashrc

oder schließen Sie einfach das Terminal und starten Sie es erneut.


Nur eine Bearbeitung: Sie haben den "Export" in der letzten Zeile verpasst. :-)
Manan Shah

7

Auf einem Mac habe ich Folgendes getan:

  1. Finden Sie es auf o / s (ich hatte bereits Build-Tools für 19 und 20 heruntergeladen)

  2. Drücken Sie Strg-Öffnen, um Apps aus dem Internet zuzulassen

  3. Verschieben Sie es aus dem Ordner sdk / build-tools / android-4.4W nach sdk / tools /. Wütend.


4

Mit dem SDK-Update auf 20, Version 20 der Build- und Plattform-Tools und 23 der SDK-Mautgebühren hat Google viele Dinge geändert.

Gradle (wenn Sie Android Studio verwenden) hat ich jedoch noch nicht aktualisiert worden , jene Änderungen widerspiegeln, wie in anderen Antworten Kopieren den angegebene zipalignBinary /sdk/tools/soll jetzt den Trick.

UPDATE: Seit der Veröffentlichung von Android Studio 0.8.1 scheint das Problem behoben zu sein.
Sie müssen nur Ihr Update durchführen build.gradleund es sollte wieder einwandfrei funktionieren

compileSdkVersion 20

buildToolsVersion "20.0.0"

targetSdkVersion 20

und wenn Sie eine kompatible oder unterstützende Bibliothek verwenden

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

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


Um dies zu verdeutlichen, verschieben Sie die Binärdatei aus Ihrem Android SDK-Ordner in den SDK-Ordner des Android Studios. Wie: C: \ Programme (x86) \ Android \ android-sdk \ tools \ zipalign.exe zu C: \ Programme (x86) \ Android \ android-studio \ sdk \ tools \ zipalign.exe
Joshua G

Google hat Android Studio (0.8.1) aktualisiert und die Probleme treten nicht mehr mit dieser neueren Version auf
DooMMasteR

3

Überprüfen Sie im SDK-Manager, ob die "Build-Tools" installiert wurden. Meins in seinem Standardzustand hat dies nicht getan.


3

Wenn Sie Gradle verwenden, aktualisieren Sie einfach Ihr Gradle-Plugin!

Ändern Sie die Zeile in build.gradle von:

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

zu:

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

Für mich geht das.

Beachten Sie, dass die Variable buildToolsVersion (für mich "20.0.0") mit Ihrer Version der Build-Tools übereinstimmen muss.

Viel Glück :)


2

Mit Android Studio 1.0 müssen Sie verwenden zipAlignEnabled true


1

Mein Fix funktionierte beim Kopieren von zipalign.exe von sdk \ build-tools \ android-4.4W nach sdk \ platform-tools , wie in einem von digiboomz verknüpften Video gezeigt, und beim Kopieren in sdk \ tools nicht


1

Wenn der Befehl zipalign in der Befehlszeile nicht gefunden wird, fügen Sie den Umgebungspfad von zipalign zu den Umgebungsvariablen hinzu. Wie oben erwähnt, ist es nie gut, den Speicherort der exe-Datei zu ändern.

Für Windows-Benutzer:

Hinzufügen User->PATH->"path to zipalign folder"

In meinem Fall war es Weg C:\adt-bundle-windows-x86_64-20140702\sdk\build-tools\android-4.4W. In diesem Ordner befindet sich zipalign.exe

Dieser Link kann Ihnen beim Festlegen und Verstehen des Pfads helfen. Http://www.voidspace.org.uk/python/articles/command_line.shtml#path


1

Ich benutze Eclipse und dies ist während eines Updates kaputt gegangen. Hier ist, was für mich funktioniert hat, da die obigen Antworten nicht funktionierten.
Ich habe überprüft, wo die build.xml von ant erwartet, zipalign.exe zu finden.

In: C:\Development\Android\android-sdk\tools\ant\build.xml zipalign ist definiert als:

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

was anzeigt, dass es erwartet wird in:

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

Dieses Verzeichnis entspricht der höchsten Version der 'Android SDK Build-Tools', die im 'Android SDK Manager' installiert angezeigt werden. Dort habe ich also zipalign.exe kopiert (was ich aus einer Android Studio-Installation erhalten habe!) Und signierte Apps werden jetzt automatisch wieder zipaligniert!


1

Ich habe von RUN als Administrator @ your SDK Manager.exe im Verzeichnis C: \ Programme \ Android SDK gelöst

Danach erhalten Sie aktualisierte Build-Tools und ein beliebiges Repository


1

Schritte, um dies zu beheben,

  1. Installieren Sie die neueste Version der Android SDK Build-Tools
  2. Überprüfen Sie, ob zipalign.exe im Ordner android-sdk \ build-tools \ zB android-sdk \ build-tools \ 21.1.0 \ verfügbar ist
  3. In einigen älteren Android-Versionen finden Sie zipalign.exe möglicherweise nicht. Keine Panik, überprüfen Sie alle anderen Versionen, in denen Zipalign verfügbar ist.
  4. Öffnen Sie Ihre Datei project.properties und konfigurieren Sie die Build-Tools so, dass sie auf die Datei zeigen, in der zipalign.exe vorhanden ist. zB sdk.buildtools = 21.1.0.
  5. Starten Sie Ihre Eclipse neu und versuchen Sie erneut zu exportieren. Es sollte funktionieren.

1

Auf einem Mac mit OSX 10.10.5, installiertem Android Studio und SDK lautet der Pfad

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

1

Die Zipalign Gradle-Aufgabe ist seit dem Android Plugin für Gradle, Revision 2.2.0 (September 2016) veraltet.

Wenn Sie es weiterhin verwenden möchten, fügen Sie Ihrer Datei gradle.properties android.useOldPackaging = true hinzu.

Klicken Sie hier für eine detaillierte Erklärung.

Verbessert die Build-Leistung durch die Einführung einer neuen Standardverpackungspipeline, die das Zippen, Signieren und Zipalignieren in einer Aufgabe übernimmt. Sie können wieder ältere Verpackungstools verwenden, indem Sie android.useOldPackaging = true zu Ihrer gradle.properties-Datei hinzufügen. Während der Verwendung des neuen Verpackungstools ist die Aufgabe zipalignDebug nicht verfügbar. Sie können jedoch selbst eine erstellen, indem Sie die Methode createZipAlignTask (String taskName, File inputFile, File outputFile) aufrufen. Die APK-Signatur verwendet jetzt zusätzlich zur herkömmlichen JAR-Signatur das APK-Signaturschema v2. Alle Android-Plattformen akzeptieren die resultierenden APKs. Jede Änderung dieser APKs nach dem Signieren macht ihre v2-Signaturen ungültig und verhindert die Installation auf einem Gerät. Blockquote


0

zipalignwurde verschoben build-tools\19.1.0und build-tools\20.0.0ich nehme an, Sie sollten eine davon in Abhängigkeit von Ihrem Ziel-SDK verwenden


0

Ich habe es behoben, indem ich Android SDK Platform (4.4W) deinstalliert und dann neu installiert habe. Ich habe Eclipse auch nach der Installation neu gestartet.


0

In meinem Fall wurden SDK Build Tools 20 bereits installiert. Ich habe zipalign.exe in den Ordner Tools kopiert, aber ohne Erfolg.

Danach bemerkte ich, dass ich Eclipse aktualisiert habe, ohne den alten Ordner zu entfernen oder umzubenennen.

So tat ich:

1) Alter Eclipse-Ordner umbenannt 2) Eclipse neu gestartet

Eclipse bat um Korrektur der Android-Einstellungen, da das Problem Eclipse war, das immer noch versuchte, den alten Ordner zu verwenden


0

Google behebt diesen Fehler mit der Build-Tool-Version: 23.0.3. Jetzt ist zipalign ordnungsgemäß verpackt und alles funktioniert einwandfrei.


0

Normalerweise befindet sich die Datei zipalign.exe in der Nähe des "Android-Managers" (auch "Android", "Android SDK" usw.), sodass Sie in der Windows-Suche nach "Android Manager" suchen und mit der rechten Maustaste über dem Befehl klicken und öffnen können Dateispeicherort . Sie befinden sich wahrscheinlich in: etwas \ Android \ android-sdk \ tools . Dann müssen Sie nur einen Ordner zurückgeben und zu Android \ android-sdk \ build-tools \ 23.0.3 wechseln . Das Zipalign ist vorhanden. Möglicherweise können Sie es nicht mit einem Doppelklick verwenden. Sie müssen daher den gesamten Pfad der Zipalign- Datei kopieren , um es in CMD zu verwenden . Der endgültige Code, den Sie eingeben müssen, lautet wie folgt:

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


0

Als ich völlig verzweifelt war, habe ich Folgendes getan, um die offizielle zipalign.exe zu finden . Die kurze Antwort ist, den Link vom offiziellen (aber nicht öffentlichen :-) Teil der Seite zu verwenden:

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

Wenn Sie dieses Rezept nach 2018 verwenden, benötigen Sie wahrscheinlich die vollständige Erklärung:

  1. Öffnen Sie Android Studio und gehen Sie

    Android Studio->Tools->Android->SDK Manager->Android SDK->SDK update site
  2. Schreiben Sie in den Texteditor-Link und öffnen Sie ihn im Browser. In meinem Fall hat der erste Link für mich funktioniert:

    https://dl.google.com/android/repository/repository2-1.xml
  3. Suchen Sie nach den neuesten Paketerstellungstools. In meinem Fall war es build-tools_r28-rc1-windows.zip , aber Sie können das Neueste in Ihrer Zeit finden

    Ctrl+F build-tools_
  4. Ersetzen Sie in der URL den letzten Teil durch den gefundenen Paketnamen wie ich:

    https://dl.google.com/android/repository/build-tools_r28-rc1-windows.zip
  5. Laden Sie das Paket herunter, entpacken Sie es und finden Sie zum Glück die offizielle Datei:

    zipalign.exe

Wenn es Ihnen hilft, ist Ihr Feedback willkommen.


Android Studio-> Tools-> Android-> SDK-Manager-> Android SDK -> SDK-Tools -> Aktivieren Sie "Android SDK Build-Tools 28-rc1". exe in SDK \ build-tools \ 28.0.0-rc1 nach der Installation.
Richard Chan

Sie haben Recht, es sollte installiert sein, wurde aber in meinem Fall nicht installiert. Ich überprüfte. Dieses Rezept ist für diejenigen gedacht, die diese Datei nach allen Versuchen nicht haben.
Roman

0

Ich habe dieses Problem folgendermaßen behoben:

Öffnen Sie Android Studio> Einstellungen> SDK-Tools und aktivieren Sie "Android SDK Build-Tools".

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.