web-dev-qa-db-fra.com

ne trouve pas Zip-align lors de la publication de l'application

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?

120
JMRboosties

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.

221
Kuma

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

Dans EclipseMenu déroulantFenêtreGestionnaire 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.

96
Pang

Il devient utilisable si vous installez

Android SDK Build-tools Rev.20
20
suno

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
8
loganyu

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.

Tutoriel pour la correction de zipalign manquant

8
digiboomz

Sur un Mac, j'ai fait ce qui suit:

  1. Trouvez-le sur o/s (j'avais déjà téléchargé les outils de compilation 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.

7
Anna Billstrom

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.

5
Petter Kjelkenes

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.+'

4
DooMMasteR

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 :)

3
centy

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.

3
user3802203

Avec Android Studio 1.0, vous devez utiliser zipAlignEnabled true

2
Niklas

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

1
MackTheKnife

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!

1
fr1550n

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

1
Sfseyhan

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

1
Mr Br

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

1
indrablake

Étapes pour résoudre ce problème,

  1. Installer la dernière version d'Android SDK Build-Tools
  2. Vérifiez si zipalign.exe est disponible dans le dossier Android-sdk\build-tools\p. Ex. Android-sdk\outils de construction\21.1.0 \
  3. Dans certaines versions plus anciennes d'Android, il est possible 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 qu'il pointe vers le fichier dans lequel zipalign.exe est présent. par exemple. sdk.buildtools = 21.1.0.
  5. Redémarrez votre Eclipse et essayez à nouveau d’exporter. Ça devrait marcher.
1
Kaps

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:

  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 paquets. Dans mon cas, c’était build-tools_r28-rc1-windows.Zip, mais vous pouvez trouver le dernier en date.

    Ctrl+F build-tools_
    
  4. 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
    
  5. 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.

0
Roman

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.

0
Regis St-Gelais

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

0
jvmvik

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

0
Heitor Giacomini

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

0
Andy Tumanov

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.

0
Flavio Battocchio

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
0
mles