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 version d'Android SDK Tools (23 aujourd'hui) et de SDK Platform-tools (20 aujourd'hui). J'ai un fichier APK, mais si j'essayais de le télécharger sur Google Play, je rencontrais un message d'erreur indiquant qu'il n'était pas aligné sur Zip.
L'exécution de zipalign corrige manuellement l'apk, mais est-ce que quelqu'un sait quelles en sont les causes et comment le réparer?
J'ai eu le même problème. Et pour résoudre ce problème, je copie le fichier Zipalign du dossier sdk/build-tools/Android-4.4W dans sdk/tools /
Édité: Depuis que Google a mis à jour le SDK pour Android, les 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 l'article ci-dessous.
Je l'ai corrigé en installant Android SDK Build-tools 20:
Dans Eclipse → Menu déroulant → Fenêtre → Gestionnaire de SDK Android, cochez Outils de génération de SDK Android Rév. 20, puis cliquez sur le bouton Installer n package (s)… bouton pour commencer l’installation.
Il devient utilisable si vous installez
Android SDK Build-tools Rev.20
J'ai utilisé le chemin complet de zipalign. Pour mac, j'ai trouvé le fichier exécutable dans le Finder et cliqué dessus. Ensuite, pour publier mon application, j'ai couru
/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
J'ai décidé de faire une vidéo pour cela..J'ai continué à la coller dans des outils, mais hélas cela ne fonctionnait pas pour moi. Je l'ai tout de suite déplacé vers platform-tools et voila publishing. Il faut ensuite redémarrer Eclipse.
Sur un Mac, j'ai fait ce qui suit:
Trouvez-le sur o/s (j'avais déjà téléchargé les outils de compilation pour 19 et 20)
Appuyez sur Ctrl-Ouvrir pour autoriser les applications d'Internet.
Déplacez-le du dossier sdk/build-tools/Android-4.4W vers sdk/tools /. Ouf.
Mac/Linux:
Cela a fonctionné pour moi (vous pourriez vouloir remplacer 22.0.1 avec la version de vos outils de construction):
Edit: ~/.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 simplement fermer le terminal et le redémarrer.
Avec la mise à jour du SDK à 20, la version 20 des outils de génération et de plate-forme et 23 des péages SDK, Google a beaucoup changé.
Gradle (si vous utilisez Android Studio) n'a toutefois pas encore été mis à jour pour refléter ces modifications. Comme indiqué dans d'autres réponses, copier le binaire zipalign
en /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…
vous devez seulement mettre à jour votre build.gradle
et cela devrait fonctionner à nouveau correctement
compileSdkVersion 20
buildToolsVersion "20.0.0"
targetSdkVersion 20
et si vous utilisez une bibliothèque compat ou support
compile 'com.Android.support:appcompat-v7:20.+'
compile 'com.Android.support:support-v4:20.+'
Si vous utilisez Gradle, mettez à jour ypur gradle!
Changer 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 :)
Vérifiez dans le gestionnaire de SDK qu'il a installé les "outils de construction". Mine dans son état par défaut, ne l'a pas fait.
Avec Android Studio 1.0, vous devez utiliser zipAlignEnabled true
Mon correctif fonctionnait en copiant zipalign.exe de sdk\build-tools\Android-4.4W vers sdk\platform-tools , comme indiqué dans la vidéo liée à digiboomz, et ne fonctionnait pas. sdk\tools
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ù le fichier build.xml de ant devait trouver zipalign.exe.
Dans: C:\Development\Android\android-sdk\tools\ant\build.xml
Zipalign est défini comme suit:
<property name="zipalign" location="${Android.build.tools.dir}/zipalign${exe}" />
qui indique son prévu dans:
C:\Development\Android\android-sdk\build-tools\18.0.1
Ce répertoire correspond à la version la plus récente des 'Outils de génération de SDK Android' affichés tels qu'installés dans le 'Gestionnaire de SDK Android'. C’est donc là que j’ai copié le fichier zipalign.exe (que j’ai obtenu à partir d’une installation d’Android Studio!) Et que les applications signées sont maintenant automatiquement corrigées!
La tâche de dégradé Zipalign est obsolète depuis Android Plugin pour Gradle, révision 2.2.0 (septembre 2016).
Si vous souhaitez continuer à l'utiliser, ajoutez Android.useOldPackaging = true à votre fichier gradle.properties.
Cliquez sur ici pour une explication détaillée.
Améliore les performances de construction en adoptant un nouveau pipeline de packaging par défaut qui gère la compression, la signature et l'alignement en une tâche. Vous pouvez revenir aux anciens outils de packaging en ajoutant Android.useOldPackaging = true à votre fichier gradle.properties. Lors de l'utilisation du nouvel outil de packaging, 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 maintenant APK Signature Scheme v2 en plus de la signature JAR traditionnelle. Toutes les plateformes Android acceptent les fichiers APK résultants. Toute modification de ces fichiers APK après la signature invalide leurs signatures v2 et empêche leur installation sur un périphérique. Blockquote
Si la commande zipalign est introuvable à partir de la ligne de commande, ajoutez le chemin du fichier 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, le chemin était 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 et à comprendre le chemin http://www.voidspace.org.uk/python/articles/command_line.shtml#path
j'ai résolu par RUN en tant qu'administrateur @ votre SDK Manager.exe dans le répertoire C:\Program Files\SDK Android
après que vous aurez mis à jour des outils de construction d'un référentiel
Étapes pour résoudre ce problème,
Lorsque j'étais complètement désespéré, j'ai fait ce qui suit, cela m'a permis de trouver official zipalign.exe . La réponse courte est d'utiliser le lien officiel (mais pas public :-) une partie 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:
Ouvrez Android Studio et c'est parti
Android Studio->Tools->Android->SDK Manager->Android SDK->SDK update site
É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
Recherchez les derniers outils de construction de paquets. Dans mon cas, c’était build-tools_r28-rc1-windows.Zip, mais vous pouvez trouver le dernier en date.
Ctrl+F build-tools_
Remplacez dans l'URL la dernière partie par le nom du paquet trouvé, comme je l'ai fait:
https://dl.google.com/Android/repository/build-tools_r28-rc1-windows.Zip
Téléchargez le package, décompressez-le et retrouvez heureusement le fichier officiel:
zipalign.exe
Si cela vous aide, vos commentaires sont les bienvenus.
Je l'ai corrigé en désinstallant Android SDK Platform (4.4W), puis en le réinstallant . J'ai également redémarré Eclipse après l'installation.
Google corrige cette erreur avec la version des outils de génération: 23.0.3Maintenant, zipalign est correctement emballé et tout fonctionne correctement.
Normalement, le fichier zipalign.exe est proche du "Gestionnaire Android" (également "Android", "SDK Android", etc.), de sorte que vous pouvezrechercher "Gestionnaire Android"dans les fenêtres de recherche et donner uneCliquez avec le bouton droit de la souris surau-dessus de la commande etouvrir l'emplacement du fichier. Vous êtes probablement dans: quelque chose \Android\android-sdk\tools. Ensuite, il faut juste retourner un dossier et aller surAndroid\android-sdk\build-tools\23.0.3. Le zipalign est là, vous ne pourrez peut-être pas l'utiliser avec double -cliquez, vous devez donc copier tout le chemin du fichierzipalignà utiliser dansCMD, le code final que vous devez entrer ressemblera à quelque chose comme :
C:\Utilisateurs\heitor\AppData\Local\Android\android-sdk\build-tools\23.0.1\zipalign.exe -v 4 Android.apk Android2.apk
zipalign
a été déplacé vers build-tools\19.1.0
et build-tools\20.0.0
, je suppose que vous devriez utiliser l'un d'eux en fonction de votre SDK cible
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 Android car le problème était Eclipse, qui essayait toujours d'utiliser l'ancien dossier.
Sous 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