impossibile trovare l'allineamento zip durante la pubblicazione dell'app


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.

Questo è il messaggio che ho ricevuto quando ho provato a pubblicare la mia app. Sto usando l'ultima revisione di Android SDK Tools (23 che è stato rilasciato oggi) e SDK Platform-tools (20 che è stato rilasciato anche oggi). Ho ottenuto un APK da esso, ma se ho provato a caricarlo su Google Play ho ricevuto un errore che si lamentava che non è allineato con zip.

L'esecuzione di zipalign risolve manualmente l'apk, ma qualcuno sa cosa causa questo e come risolverlo?


7
Gli ultimi strumenti sdk (23) non sono stati pacchettizzati correttamente. Problemi affrontati con molti strumenti in questa versione.
Incontro

Risposte:


223

Ho avuto lo stesso problema. E per risolverlo, copio il file Zipalign dalla cartella sdk / build-tools / android-4.4W a sdk / tools /

Modificato: poiché Google ha aggiornato l'SDK per Android, i nuovi strumenti di build risolvono questo problema. Quindi ho incoraggiato tutti ad aggiornare ad Android SDK Build-tools 20 come suggerito da Pang nel post qui sotto.


1
Deve essere una copia del file e non un collegamento simbolico in OSX. Ho usato un collegamento simbolico (che di solito è sufficiente) e non è stato ancora trovato.
SnowInferno

7
L'ho trovato sotto - sdk \ build-tools \ 20.0.0
shimi_tap

13
Non copiare l'exe da un'altra directory. Usa SDK Manager per installare SDK Build Tools v20
darksider474

2
Quando si utilizza ant build-release, è necessario aggiungere sdk.buildtools = 19.1.0 o = 20.0.0 a project.properties. Si noti inoltre che il set di proprietà zipalign è stato modificato in ANT build.xml in modo che punti alla versione della catena di strumenti destra.
David

10
Come accennato in alcune delle risposte che è necessario installare Android SDK Build-tools Rev. 20. L'ho fatto. Ma ricevo ancora lo stesso errore. Quindi devo copiare Zipalign da "sdk / build-tools / 20.0.0" a "sdk / tools /"
Kevin

96

L'ho risolto installando Android SDK Build-tools 20:

In EclipseMenu a discesaFinestraGestione SDK Android , selezionare Strumenti di compilazione SDK Android Rev. 20 , quindi fare clic sul pulsante Installa n pacchetti… per avviare l'installazione.


26
Ho dovuto riavviare Eclipse dopo averlo fatto
Cigogne Eveillée

Rev. 23.0.0 risolve questo problema ... È utile per l'ultima build
Zala Janaksinh

20

Diventa utilizzabile se installi

Android SDK Build-tools Rev.20

8

Ho deciso di fare un video solo per questo .. Ho continuato a incollarlo negli strumenti, ma purtroppo non funzionava per me. L'ho spostato su platform-tools e voilà publishing subito .. dopo devo riavviare eclipse.

Tutorial per correggere zipalign mancante


1
Ottimo video grazie, per me ha funzionato aggiungendo lo zipalign agli strumenti e non agli strumenti della piattaforma
shimi_tap

Questo collegamento mi ha aiutato, ma invece di spostare zipalign.exe da build-tools a platform-tools, ho appena aggiunto la cartella build-tools in PATH env
Paul Samsotha

8

Ho usato il percorso completo di zipalign. Per Mac, ho trovato il file eseguibile nel Finder e ho fatto clic su di esso. Quindi, per pubblicare la mia app, ho eseguito

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

invece di

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

2
Per Windows (il mio percorso 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'
Nadim

8

Mac / Linux:

Questo ha funzionato per me (potresti voler sostituire 22.0.1 con la versione dei tuoi strumenti di compilazione):

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

E corri:

source ~/.bashrc

o semplicemente chiudere il terminale e riavviarlo.


solo una modifica: ti sei perso l '"esportazione" nell'ultima riga. :-)
Manan Shah

7

Su un Mac, ho fatto quanto segue:

  1. Trovalo su o / s (avevo già scaricato gli strumenti di compilazione per 19 e 20)

  2. Premi Ctrl-Apri per consentire le app da Internet

  3. Spostalo dalla cartella sdk / build-tools / android-4.4W a sdk / tools /. Accidenti.


4

Con l'aggiornamento SDK a 20, la versione 20 degli strumenti di build e piattaforma e 23 dei pedaggi sdk, Google ha spostato molte cose.

Gradle (se stai utilizzando Android Studio) tuttavia non è stato ancora aggiornato per riflettere tali modifiche, come affermato in altre risposte, la copia del file zipalignbinario /sdk/tools/dovrebbe fare il trucco per ora.

AGGIORNAMENTO: dal rilascio di Android Studio 0.8.1 il problema sembra risolto ora ...
devi solo aggiornare il tuo build.gradlee dovrebbe funzionare di nuovo bene

compileSdkVersion 20

buildToolsVersion "20.0.0"

targetSdkVersion 20

e se usi una libreria compatibile o di supporto

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

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


Punto di chiarimento, sposta il file binario dalla cartella SDK di Android alla cartella SDK di Android Studio. Come: C: \ Program Files (x86) \ Android \ android-sdk \ tools \ zipalign.exe in C: \ Program Files (x86) \ Android \ android-studio \ sdk \ tools \ zipalign.exe
Joshua G

google ha aggiornato Android Studio (0.8.1) e i problemi non si verificano più con questa versione più recente
DooMMasteR

3

Controlla nel gestore SDK che abbia installato i "build-tools". Il mio nel suo stato predefinito, non ha fatto questo.


3

Se stai usando gradle, aggiorna il plugin ypur gradle!

Cambia riga in build.gradle da:

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

per:

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

Per me funziona.

Nota che la variabile buildToolsVersion (per me "20.0.0") deve corrispondere alla tua versione di build-tools.

In bocca al lupo :)


2

Con Android Studio 1.0 devi usare zipAlignEnabled true


1

La mia correzione ha funzionato copiando zipalign.exe da sdk \ build-tools \ android-4.4W a sdk \ platform-tools , come mostrato nel video collegato da digiboomz, e non ha funzionato copiandolo in sdk \ tools


1

Se il comando zipalign non viene trovato dalla riga di comando, aggiungere il percorso del file zipalign alle variabili ambientali. Come accennato in precedenza, non è mai utile cambiare la posizione del file exe.

Per utenti Windows:

Aggiungere a User->PATH->"path to zipalign folder"

Nel mio caso è stato percorso C:\adt-bundle-windows-x86_64-20140702\sdk\build-tools\android-4.4W . In quella cartella c'è zipalign.exe

Questo collegamento può aiutarti a impostare il percorso e comprenderlo http://www.voidspace.org.uk/python/articles/command_line.shtml#path


1

Uso Eclipse e questo si è rotto durante un aggiornamento. Ecco cosa ha funzionato per me come le risposte sopra non hanno fatto.
Ho controllato dove build.xml di ant si aspettava di trovare zipalign.exe.

In: C:\Development\Android\android-sdk\tools\ant\build.xml zipalign è definito come:

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

che indica la sua attesa in:

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

Questa directory corrisponde alla versione più recente degli "Strumenti di compilazione di Android SDK" visualizzati come installati in "Android SDK Manager". Quindi, è lì che ho copiato zipalign.exe (che ho ottenuto da un'installazione di Android Studio!) E le app firmate ora vengono nuovamente allineate automaticamente!


1

ho risolto RUN come amministratore @ il tuo SDK Manager.exe nella directory C: \ Programmi \ Android SDK

dopodiché otterrai strumenti di compilazione aggiornati in qualsiasi repository


1

Passaggi per risolvere questo problema,

  1. Installa l'ultima versione di Android SDK Build-Tools
  2. Controlla se zipalign.exe è disponibile nella cartella android-sdk \ build-tools \ es. Android-sdk \ build-tools \ 21.1.0 \
  3. In alcune versioni precedenti di Android potresti non trovare zipalign.exe. Niente panico, controlla qualsiasi altra versione in cui è disponibile zipalign.
  4. Apri il tuo file project.properties e configura build-tools in modo che punti al in cui è presente zipalign.exe. ad es. sdk.buildtools = 21.1.0.
  5. Riavvia l'eclissi e prova a esportare di nuovo. Dovrebbe funzionare.

1

Su un Mac con OSX 10.10.5, Android Studio e SDK installati il ​​percorso è

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

1

L'attività Zipalign gradle è deprecata dal plug-in Android per Gradle, revisione 2.2.0 (settembre 2016).

Se vuoi continuare a usarlo, aggiungi android.useOldPackaging = true al tuo file gradle.properties.

Fare clic qui per una spiegazione dettagliata.

Migliora le prestazioni di compilazione adottando una nuova pipeline di pacchettizzazione predefinita che gestisce la compressione, la firma e l'allineamento zip in un'unica attività. Puoi tornare a utilizzare i vecchi strumenti di pacchettizzazione aggiungendo android.useOldPackaging = true al tuo file gradle.properties. Durante l'utilizzo del nuovo strumento di creazione dei pacchetti, l'attività zipalignDebug non è disponibile. Tuttavia, puoi crearne uno tu stesso chiamando il metodo createZipAlignTask (String taskName, File inputFile, File outputFile). La firma dell'APK ora utilizza APK Signature Scheme v2 oltre alla tradizionale firma JAR. Tutte le piattaforme Android accettano gli APK risultanti. Qualsiasi modifica a questi APK dopo la firma invalida le loro firme v2 e impedisce l'installazione su un dispositivo. blockquote


0

zipalignè stato spostato in build-tools\19.1.0e build-tools\20.0.0, presumo che dovresti usarne uno a seconda del tuo SDK di destinazione


0

L'ho risolto disinstallando Android SDK Platform (4.4W) e quindi reinstallandolo. Ho anche riavviato Eclipse dopo l'installazione.


0

Nel mio caso, gli SDK Build Tools 20 erano già installati. Ho copiato zipalign.exe nella cartella Strumenti ma senza successo.

Successivamente ho notato che ho aggiornato Eclipse senza rimuovere o rinominare la vecchia cartella.

Così ho fatto:

1) Rinominata la vecchia cartella Eclipse 2) Eclipse riavviato

Eclipse ha chiesto di correggere le preferenze di Android perché il problema era Eclipse, che stava ancora cercando di utilizzare la vecchia cartella


0

Google corregge questo errore con la versione degli strumenti di compilazione: 23.0.3 Ora zipalign è confezionato correttamente e tutto funziona correttamente.


0

Normalmente zipalign.exe è chiuso da "Android manager" (anche "Android", "Android SDK" ecc.), Quindi puoi cercare "Android Manager" nella ricerca di Windows e fare un clic destro sopra il comando e aprire posizione del file . Probabilmente ti trovi in: qualcosa \ Android \ android-sdk \ tools . Quindi è solo necessario restituire una cartella e andare su Android \ android-sdk \ build-tools \ 23.0.3 . Lo zipalign è lì, forse non sarai in grado di usarlo con il doppio clic, quindi devi copiare tutto il percorso del file zipalign da utilizzare in CMD , il codice finale che dovrai inserire sarà qualcosa del tipo:

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


0

Quando ero completamente disperato, ho fatto quanto segue, che mi ha permesso di trovare zipalign.exe ufficiale . La risposta breve è utilizzare il collegamento dalla parte ufficiale (ma non pubblica :-) del sito:

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

Se usi questa ricetta dopo il 2018, probabilmente avrai bisogno della spiegazione completa:

  1. Apri Android Studio e vai

    Android Studio->Tools->Android->SDK Manager->Android SDK->SDK update site
  2. Scrivi nel link dell'editor di testo e aprilo nel browser. Nel mio caso il primo collegamento ha funzionato per me:

    https://dl.google.com/android/repository/repository2-1.xml
  3. Cerca gli ultimi strumenti di compilazione del pacchetto. Nel mio caso, era build-tools_r28-rc1-windows.zip , ma puoi trovare le ultime novità nel tuo tempo

    Ctrl+F build-tools_
  4. Sostituisci nell'URL l'ultima parte con il nome del pacchetto trovato come ho fatto io:

    https://dl.google.com/android/repository/build-tools_r28-rc1-windows.zip
  5. Scarica il pacchetto, decomprimilo e fortunatamente trova il file ufficiale:

    zipalign.exe

Se ti aiuta, il tuo feedback è il benvenuto.


Android Studio-> Strumenti-> Android-> SDK Manager-> Android SDK -> Strumenti SDK -> seleziona "Android SDK Build-Tools 28-rc1" , quindi applica , installerai gli strumenti di build e puoi trovare zipalign. exe in SDK \ build-tools \ 28.0.0-rc1 dopo l'installazione.
Richard Chan

Hai ragione, dovrebbe essere installato, ma non è stato installato nel mio caso. Ho controllato. Questa ricetta è per coloro che non hanno questo file dopo tutti i tentativi.
Roman

0

Ho risolto questo problema in questo modo:

Apri Android Studio> Preferenze> Strumenti SDK e seleziona "Strumenti di compilazione SDK Android"

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.