impossible de trouver zip-align lors de la publication de l'application


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.

C'est le message que j'ai reçu lorsque j'ai essayé de publier mon application. J'utilise la dernière révision d'Android SDK Tools (23 qui a été publiée aujourd'hui) et SDK Platform-tools (20 qui a également été publiée aujourd'hui). J'en ai tiré un APK, mais si j'essayais de le télécharger sur Google Play, un message d'erreur me signalait qu'il n'était pas aligné sur le zip.

L'exécution de zipalign corrige manuellement l'apk, mais est-ce que quelqu'un sait ce qui cause cela et comment y remédier?


7
Les derniers outils SDK (23) n'ont pas été emballés correctement. Face à des problèmes avec de nombreux outils sur cette version.
MeetM

Réponses:


223

J'ai eu le même problème. Et pour y remédier, je copie le fichier Zipalign du dossier sdk / build-tools / android-4.4W vers sdk / tools /

Modifié: depuis que Google a mis à jour le SDK pour Android, de nouveaux outils de construction résolvent ce problème. J'ai donc encouragé tout le monde à mettre à jour vers Android SDK Build-tools 20 comme suggéré par Pang dans le post ci-dessous.


1
Il doit s'agir d'une copie du fichier et non d'un lien symbolique sous OSX. J'ai utilisé un lien symbolique (ce qui est généralement suffisant) et il n'a toujours pas été trouvé.
SnowInferno

7
Je l'ai trouvé sous - sdk \ build-tools \ 20.0.0
shimi_tap

13
Ne copiez pas l'exe d'un autre répertoire. Utilisez le gestionnaire de SDK pour installer les outils de création de SDK v20
darksider474

2
Lorsque vous utilisez ant build-release, il faut ajouter sdk.buildtools = 19.1.0 ou = 20.0.0 à project.properties. Notez également que le jeu de propriétés zipalign a été modifié dans le fichier ANT build.xml pour pointer sur la version de la chaîne d'outils droite.
david le

10
Comme mentionné dans certaines des réponses dont vous avez besoin pour installer Android SDK Build-tools Rev. 20. Je l'ai fait. Mais toujours la même erreur. Ensuite, je dois copier Zipalign de "sdk / build-tools / 20.0.0" vers "sdk / tools /"
Kevin

96

Je l'ai corrigé en installant Android SDK Build-tools 20:

Dans EclipseMenu déroulantFenêtreGestionnaire de SDK Android , vérifiez Android SDK Build-tools Rev. 20 , puis cliquez sur le bouton Installer n package (s)… pour démarrer l'installation.


26
J'ai dû redémarrer eclipse après avoir fait ça
Cigogne Eveillée

Rev.23.0.0 corrige ce problème ... C'est utile pour la dernière version
Zala Janaksinh

20

Il devient utilisable si vous installez

Android SDK Build-tools Rev.20

8

J'ai décidé de simplement faire une vidéo pour cela .. Je continuais à la coller dans des outils mais hélas cela ne fonctionnait pas pour moi. Je l'ai déplacé vers les outils de plate-forme et la publication de voila tout de suite .. je dois redémarrer eclipse après.

Tutoriel pour réparer le zipalign manquant


1
Super vidéo merci, pour moi cela a fonctionné en ajoutant le zipalign aux outils et non aux outils de la plate-forme
shimi_tap

Ce lien m'a aidé, mais au lieu de déplacer le zipalign.exe des build-tools vers les platform-tools, je viens d'ajouter le dossier build-tools au PATH env
Paul Samsotha

8

J'ai utilisé le chemin complet de zipalign. Pour mac, j'ai trouvé le fichier exécutable dans Finder et cliqué dessus. Ensuite, pour publier mon application, j'ai exécuté

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

au lieu de

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

2
Pour Windows (mon chemin zipalign): C:\Users\Machine\AppData\Local\Android\Sdk\build-tools\27.0.3\zipalign.exe Mon exemple 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:

Cela a fonctionné pour moi (vous voudrez peut-être remplacer 22.0.1 par la version de vos outils de construction):

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

Et courir:

source ~/.bashrc

ou fermez simplement le terminal et redémarrez-le.


juste une modification: vous avez manqué "l'exportation" en dernière ligne. :-)
Manan Shah

7

Sur un Mac, j'ai effectué les opérations suivantes:

  1. Retrouvez-le sur o / s (j'avais déjà téléchargé des outils de build pour 19 et 20)

  2. Appuyez sur Ctrl-Ouvrir pour autoriser les applications d'Internet

  3. Déplacez-le du dossier sdk / build-tools / android-4.4W vers sdk / tools /. Ouf.


4

Avec la mise à jour du SDK à 20, la version 20 des outils de construction et de plate-forme et 23 des péages SDK, Google a déplacé beaucoup de choses.

Gradle (si vous utilisez Android Studio) n'a cependant pas encore été mis à jour pour refléter ces changements, comme indiqué dans d'autres réponses, copier le zipalignbinaire vers /sdk/tools/devrait faire l'affaire pour le moment.

MISE À JOUR: depuis la sortie d'Android Studio 0.8.1, le problème semble résolu maintenant ... il
vous suffit de mettre à jour votre build.gradleet cela devrait fonctionner à nouveau correctement

compileSdkVersion 20

buildToolsVersion "20.0.0"

targetSdkVersion 20

et si vous utilisez une bibliothèque de compatibilité ou de support

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

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


Point de clarification, déplacez le binaire de votre dossier sdk android vers le dossier sdk du studio android. Comme: C: \ Program Files (x86) \ Android \ android-sdk \ tools \ zipalign.exe à C: \ Program Files (x86) \ Android \ android-studio \ sdk \ tools \ zipalign.exe
Joshua G

google a mis à jour android studio (0.8.1) et les problèmes ne se produisent plus avec cette version plus récente
DooMMasteR

3

Vérifiez dans le gestionnaire SDK, qu'il a installé les "outils de construction". Le mien dans son état par défaut, n'a pas fait cela.


3

Si vous utilisez gradle, mettez simplement à jour le plugin ypur gradle!

Changez la ligne dans build.gradle à partir de:

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

à:

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

Ça marche pour moi.

Notez que la variable buildToolsVersion (pour moi "20.0.0") doit correspondre à votre version de build-tools.

Bonne chance :)


2

Avec Android Studio 1.0, vous devez utiliser zipAlignEnabled true


1

Mon correctif fonctionnait en copiant zipalign.exe de sdk \ build-tools \ android-4.4W vers sdk \ platform-tools , comme le montre la vidéo liée par digiboomz, et ne fonctionnait pas en le copiant dans sdk \ tools


1

Si la commande zipalign n'est pas trouvée à partir de la ligne de commande, ajoutez le chemin du fichier de zipalign aux variables d'environnement. Comme mentionné ci-dessus, il n'est jamais bon de changer l'emplacement du fichier exe.

Pour les utilisateurs Windows:

Ajouter à User->PATH->"path to zipalign folder"

Dans mon cas, c'était le chemin C:\adt-bundle-windows-x86_64-20140702\sdk\build-tools\android-4.4W. Dans ce dossier se trouve zipalign.exe

Ce lien peut vous aider à définir le chemin et à le comprendre http://www.voidspace.org.uk/python/articles/command_line.shtml#path


1

J'utilise Eclipse et cela s'est cassé lors d'une mise à jour. Voici ce qui a fonctionné pour moi, contrairement aux réponses ci-dessus.
J'ai vérifié où build.xml de fourmi s'attendait à trouver zipalign.exe.

Dans: C:\Development\Android\android-sdk\tools\ant\build.xml zipalign est défini comme:

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

qui indique son attendu dans:

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

Ce répertoire correspond à la version la plus élevée des 'Android SDK Build-tools' affichée comme installée dans le 'Android SDK Manager'. C'est donc là que j'ai copié zipalign.exe (que j'ai obtenu à partir d'une installation d'Android Studio!) Et que les applications signées sont à nouveau automatiquement zipalignées!


1

J'ai résolu par RUN en tant qu'administrateur @ votre SDK Manager.exe dans le répertoire C: \ Program Files \ Android SDK

après cela, vous obtiendrez des outils de construction mis à jour et n'importe quel référentiel


1

Étapes pour résoudre ce problème,

  1. Installez la dernière version d'Android SDK Build-Tools
  2. Vérifiez si zipalign.exe est disponible dans le dossier android-sdk \ build-tools \ eg android-sdk \ build-tools \ 21.1.0 \
  3. Dans certaines anciennes versions d'Android, il se peut que vous ne trouviez pas zipalign.exe. Ne paniquez pas, vérifiez toute autre version dans laquelle zipalign est disponible.
  4. Ouvrez votre fichier project.properties et configurez les outils de construction pour pointer vers le dans lequel zipalign.exe est présent. par exemple sdk.buildtools = 21.1.0.
  5. Redémarrez votre éclipse et réessayez d'exporter. Ça devrait marcher.

1

Sur un Mac avec OSX 10.10.5, Android Studio et SDK installés, le chemin est

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

1

La tâche Gradle Zipalign est obsolète depuis le plugin Android pour Gradle, Révision 2.2.0 (septembre 2016).

Si vous souhaitez continuer à l'utiliser, ajoutez android.useOldPackaging = true à votre fichier gradle.properties.

Cliquez ici pour une explication détaillée.

Améliore les performances de construction en adoptant un nouveau pipeline d'empaquetage par défaut qui gère la compression, la signature et l'alignement en une seule tâche. Vous pouvez revenir à l'utilisation des anciens outils de packaging en ajoutant android.useOldPackaging = true à votre fichier gradle.properties. Lors de l'utilisation du nouvel outil d'empaquetage, la tâche zipalignDebug n'est pas disponible. Cependant, vous pouvez en créer un vous-même en appelant la méthode createZipAlignTask (String taskName, File inputFile, File outputFile). La signature APK utilise désormais le schéma de signature APK v2 en plus de la signature JAR traditionnelle. Toutes les plates-formes Android acceptent les APK résultants. Toute modification de ces APK après la signature invalide leurs signatures v2 et empêche l'installation sur un appareil. Blockquote


0

zipaligna été déplacé vers build-tools\19.1.0et build-tools\20.0.0, je suppose que vous devriez utiliser l'un d'entre eux en fonction de votre SDK cible


0

Je l'ai corrigé en désinstallant la plate-forme Android SDK (4.4W), puis en la réinstallant. J'ai également redémarré Eclipse après l'installation.


0

Dans mon cas, SDK Build Tools 20 était déjà installé. J'ai copié zipalign.exe dans le dossier Tools mais sans succès.

Après cela, j'ai remarqué que j'avais mis à jour Eclipse sans supprimer ni renommer l'ancien dossier.

Alors j'ai fait:

1) Ancien dossier Eclipse renommé 2) Eclipse redémarré

Eclipse a demandé de corriger les préférences d'Android car le problème était Eclipse, qui essayait toujours d'utiliser l'ancien dossier


0

Google corrige cette erreur avec la version des outils de construction: 23.0.3 Maintenant, zipalign est emballé correctement et tout fonctionne bien.


0

Normalement, zipalign.exe est proche du "gestionnaire Android" (aussi, "Android", "Android SDK", etc.), vous pouvez donc rechercher "Android Manager" dans la recherche Windows et faire un clic droit au- dessus de la commande et ouvrir emplacement du fichier . Vous êtes probablement dans: quelque chose \ Android \ android-sdk \ tools . Ensuite, il suffit de retourner un dossier et d'aller dans Android \ android-sdk \ build-tools \ 23.0.3 . Le zipalign est là, vous ne pourrez peut-être pas l'utiliser avec un double-clic, vous devez donc copier tout le chemin du fichier zipalign à utiliser dans CMD , le code final que vous devrez saisir sera quelque chose comme:

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


0

Quand j'étais complètement désespéré, j'ai fait ce qui suit, qui m'a permis de trouver zipalign.exe officiel . La réponse courte est d'utiliser le lien de la partie officielle (mais non publique :-) du site:

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

Si vous utilisez cette recette après 2018, vous avez probablement besoin de l'explication complète:

  1. Ouvrez Android Studio et c'est parti

    Android Studio->Tools->Android->SDK Manager->Android SDK->SDK update site
  2. Écrivez dans le lien de l'éditeur de texte et ouvrez-le dans le navigateur. Dans mon cas, le premier lien a fonctionné pour moi:

    https://dl.google.com/android/repository/repository2-1.xml
  3. Recherchez les derniers outils de construction de packages. Dans mon cas, c'était build-tools_r28-rc1-windows.zip , mais vous pouvez trouver la dernière de votre temps

    Ctrl+F build-tools_
  4. Remplacez dans l'URL la dernière partie par le nom du package trouvé comme je l'ai fait:

    https://dl.google.com/android/repository/build-tools_r28-rc1-windows.zip
  5. Téléchargez le package, décompressez-le et trouvez heureusement le fichier officiel:

    zipalign.exe

Si cela vous aide, vos commentaires sont les bienvenus.


Android Studio-> Tools-> Android-> SDK Manager-> Android SDK -> SDK Tools -> cochez "Android SDK Build-Tools 28-rc1" , puis appliquez , vous installerez les outils de build, et vous pourrez trouver zipalign. exe dans SDK \ build-tools \ 28.0.0-rc1 après l'installation.
Richard Chan

Vous avez raison, il devrait être installé, mais n'a pas été installé dans mon cas. J'ai vérifié. Cette recette est pour ceux qui n'ont pas ce fichier après toutes les tentatives.
Roman

0

J'ai résolu ce problème en faisant ceci:

Ouvrez Android Studio> Préférences> Outils du SDK et cochez "Outils de construction du SDK Android"

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.