no se puede alinear zip al publicar la aplicación

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.

Este es el mensaje que recibí cuando intenté publicar mi aplicación. Estoy usando la última revisión de Android SDK Tools (23 que se lanzó hoy) y SDK Platform-tools (20 que también se lanzó hoy). Obtuve un APK, pero si intenté subirlo a Google Play, recibí un error quejándome de que no está comprimido.

Ejecutar zipalign corrige manualmente el apk, pero ¿alguien sabe qué causa esto y cómo solucionarlo?

JMRboosties
fuente
77
Las últimas herramientas SDK (23) no se han empaquetado correctamente. Enfrentaron problemas con muchas herramientas en esta versión.
MeetM

Respuestas:

223

Yo tuve el mismo problema. Y para solucionarlo, copié el archivo Zipalign de la carpeta sdk / build-tools / android-4.4W a sdk / tools /

Editado: desde que Google actualizó SDK para Android, las nuevas herramientas de compilación solucionan este problema. Así que animé a todos a actualizar a Android SDK Build-tools 20 como lo sugirió Pang en la publicación a continuación.

Kuma
fuente
1
Debe ser una copia del archivo y no un enlace simbólico en OSX. Utilicé un enlace simbólico (que generalmente es suficiente) y todavía no lo encontré.
SnowInferno
77
Lo encontré debajo de - sdk \ build-tools \ 20.0.0
shimi_tap
13
No copie el exe de otro directorio. Use el SDK Manager para instalar SDK Build Tools v20
darksider474
2
Cuando se usa ant build-release, es necesario agregar sdk.buildtools = 19.1.0 o = 20.0.0 a project.properties. También tenga en cuenta que el conjunto de propiedades de zipalign se ha cambiado en ANT build.xml para apuntar a la versión correcta de la cadena de herramientas.
david
10
Como se menciona en algunas de las respuestas que necesita para instalar Android SDK Build-tools Rev. 20. Lo hice. Pero sigue recibiendo el mismo error. Luego tengo que copiar Zipalign de "sdk / build-tools / 20.0.0" a "sdk / tools /"
Kevin
96

Lo arreglé instalando Android SDK Build-tools 20:

En EclipseMenú desplegableVentanaAdministrador del SDK de Android , verifique las herramientas de compilación del SDK de Android Rev. 20 , luego haga clic en el botón Instalar n paquete (s) ... para comenzar la instalación.

Angustia
fuente
26
Tuve que reiniciar el eclipse después de hacer esto
Cigogne Eveillée
Rev. 23.0.0 soluciona este problema ... Es útil para la última compilación
Zala Janaksinh
20

Se vuelve utilizable si instala

Android SDK Build-tools Rev.20
suno
fuente
8

Decidí hacer un video para esto ... Seguí pegándolo en herramientas, pero por desgracia eso no me funcionó. Lo trasladé a herramientas de plataforma y listo para publicar de inmediato ... debo reiniciar eclipse después.

Tutorial para arreglar zipalign faltante

digiboomz
fuente
1
Gran video, gracias, para mí funcionó agregando el zipalign a las herramientas y no a las herramientas de la plataforma
shimi_tap
Este enlace me ayudó, pero en lugar de mover el zipalign.exe de las herramientas de compilación a las herramientas de plataforma, acabo de agregar la carpeta de herramientas de compilación env PATH
Paul Samsotha
8

Usé la ruta completa de zipalign. Para mac, encontré el archivo ejecutable en Finder e hice clic en él. Luego, para publicar mi aplicación, ejecuté

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

en vez de

zipalign -v 4 HelloWorld-release-unsigned.apk HelloWorld.apk
loganyu
fuente
2
Para windows (mi ruta de zipalign): C:\Users\Machine\AppData\Local\Android\Sdk\build-tools\27.0.3\zipalign.exe cmd de mi ejemplo& '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:

Esto funcionó para mí (es posible que desee reemplazar 22.0.1 con la versión de sus herramientas de compilación):

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

Y correr:

source ~/.bashrc

o simplemente cierre la terminal y vuelva a iniciarla.

Petter Kjelkenes
fuente
solo una edición: se perdió la "exportación" en la última línea. :-)
Manan Shah
7

En una Mac, hice lo siguiente:

  1. Encuéntrelo en o / s (ya había descargado herramientas de compilación para 19 y 20)

  2. Presione Ctrl-Abrir para permitir aplicaciones desde internet

  3. Muévalo de la carpeta sdk / build-tools / android-4.4W a sdk / tools /. Uf.

Anna Billstrom
fuente
4

Con la actualización del SDK a 20, la versión 20 de las herramientas de compilación y plataforma y 23 de los peajes SDK, Google ha movido muchas cosas.

Sin embargo, Gradle (si está utilizando Android Studio) aún no se ha actualizado para reflejar esos cambios, como se indica en otras Respuestas, copiar el zipalignbinario /sdk/tools/debería ser el truco por ahora.

ACTUALIZACIÓN: desde que se lanzó Android Studio 0.8.1, el problema parece solucionado ahora ...
solo necesita actualizar su build.gradley debería funcionar bien nuevamente

compileSdkVersion 20

buildToolsVersion "20.0.0"

targetSdkVersion 20

y si usa alguna biblioteca compatible o de soporte

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

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

DooMMasteR
fuente
Punto de aclaración, mueva el binario de su carpeta sdk de Android a la carpeta SDK de Android Studio. Me gusta: C: \ Archivos de programa (x86) \ Android \ android-sdk \ tools \ zipalign.exe a C: \ Archivos de programa (x86) \ Android \ android-studio \ sdk \ tools \ zipalign.exe
Joshua G
Google ha actualizado Android Studio (0.8.1) y los problemas ya no ocurren con esta versión más reciente
DooMMasteR
3

Compruebe en el administrador del SDK que ha instalado las "herramientas de compilación". La mía en su estado predeterminado, no hizo esto.

usuario3802203
fuente
3

Si está utilizando gradle, simplemente actualice el complemento ypur gradle.

Cambiar la línea en build.gradle desde:

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

a:

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

Esto funciona para mi.

Tenga en cuenta que la variable buildToolsVersion (para mí "20.0.0") debe coincidir con su versión de herramientas de compilación.

Buena suerte :)

ciento
fuente
2

Con Android Studio 1.0 tienes que usar zipAlignEnabled true

Niklas
fuente
1

Mi solución funcionó copiando zipalign.exe de sdk \ build-tools \ android-4.4W a sdk \ platform-tools , como se muestra en el video vinculado por digiboomz, y no funcionó copiándolo en sdk \ tools

Mack el cuchillo
fuente
1

Si el comando zipalign no se encuentra desde la línea de comandos, agregue la ruta del archivo de zipalign a las variables ambientales. Como se mencionó anteriormente, nunca es bueno cambiar la ubicación del archivo exe.

Para usuarios de Windows:

añadir User->PATH->"path to zipalign folder"

En mi caso fue camino C:\adt-bundle-windows-x86_64-20140702\sdk\build-tools\android-4.4W. En esa carpeta está zipalign.exe

Este enlace puede ayudarlo a configurar la ruta y comprenderla http://www.voidspace.org.uk/python/articles/command_line.shtml#path

Sr. Br
fuente
1

Uso Eclipse y esto se rompió durante una actualización. Esto es lo que funcionó para mí, ya que las respuestas anteriores no lo hicieron.
Verifiqué dónde Ant. build.xml esperaba encontrar zipalign.exe.

En: C:\Development\Android\android-sdk\tools\ant\build.xml zipalign se define como:

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

que indica lo esperado en:

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

Este directorio corresponde a la versión más alta de las 'Herramientas de compilación del SDK de Android' que se muestran como instaladas en el 'Administrador del SDK de Android'. Entonces, ahí es donde copié zipalign.exe (¡que obtuve de una instalación de Android Studio!) Y las aplicaciones firmadas ahora se vuelven a zigligar automáticamente.

fr1550n
fuente
1

RUN lo resolvió como Administrador @ su SDK Manager.exe en el directorio C: \ Archivos de programa \ Android SDK

después de eso obtendrás herramientas de compilación actualizadas y cualquier repositorio

indrablake
fuente
1

Pasos para arreglar esto,

  1. Instale la última versión de Android SDK Build-Tools
  2. Compruebe si zipalign.exe está disponible en la carpeta android-sdk \ build-tools \ eg android-sdk \ build-tools \ 21.1.0 \
  3. En algunas versiones anteriores de Android, es posible que no encuentre zipalign.exe. No entre en pánico, verifique cualquier otra versión en la que esté disponible zipalign.
  4. Abra su archivo project.properties y configure las herramientas de compilación para apuntar a donde está presente zipalign.exe. por ejemplo, sdk.buildtools = 21.1.0.
  5. Reinicie su eclipse e intente exportar nuevamente. Deberia de funcionar.
Kaps
fuente
1

En una Mac con OSX 10.10.5, Android Studio y SDK instalados, la ruta es

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

La tarea de Zipalign Gradle está en desuso desde el complemento de Android para Gradle, revisión 2.2.0 (septiembre de 2016).

Si desea seguir usándolo, agregue android.useOldPackaging = true a su archivo gradle.properties.

Haga clic aquí para obtener una explicación detallada.

Mejora el rendimiento de la compilación al adoptar una nueva tubería de empaque predeterminada que maneja la compresión, la firma y la alineación en una sola tarea. Puede volver a usar las herramientas de empaque más antiguas agregando android.useOldPackaging = true a su archivo gradle.properties. Al usar la nueva herramienta de empaquetado, la tarea zipalignDebug no está disponible. Sin embargo, puede crear uno usted mismo llamando al método createZipAlignTask (String taskName, File inputFile, File outputFile). La firma de APK ahora usa APK Signature Scheme v2 además de la firma JAR tradicional. Todas las plataformas de Android aceptan los APK resultantes. Cualquier modificación a estos APK después de firmar invalida sus firmas v2 y evita la instalación en un dispositivo. Blockquote

Sfseyhan
fuente
0

zipalignse movió a build-tools\19.1.0y build-tools\20.0.0, supongo que debe usar uno de ellos en función de su SDK de destino

Andy Tumanov
fuente
0

Lo arreglé desinstalando la plataforma Android SDK (4.4W) y luego reinstalándolo. También reinicié Eclipse después de la instalación.

Regis St-Gelais
fuente
0

En mi caso, SDK Build Tools 20 ya estaba instalado. Copié zipalign.exe en la carpeta Herramientas pero sin éxito.

Después de eso, noté que actualicé Eclipse sin eliminar o cambiar el nombre de la carpeta anterior.

Así que lo hice:

1) Se renombró la carpeta Eclipse antigua 2) Se reinició Eclipse

Eclipse pidió corregir las preferencias de Android porque el problema era Eclipse, que todavía estaba tratando de usar la carpeta anterior

Flavio Battocchio
fuente
0

Google corrige este error con la versión de herramientas de compilación: 23.0.3 Ahora zipalign está empaquetado correctamente y todo funciona bien.

jvmvik
fuente
0

Normalmente, el zipalign.exe está cerca del "Administrador de Android" (también, "Android", "SDK de Android", etc.), por lo que puede buscar "Administrador de Android" en la búsqueda de Windows y hacer un clic derecho sobre el comando y abrir ubicación del archivo . Probablemente estés en: algo \ Android \ android-sdk \ tools . Entonces solo es necesario devolver una carpeta e ir a Android \ android-sdk \ build-tools \ 23.0.3 . El zipalign está allí, tal vez no pueda usarlo con doble clic, por lo que debe copiar toda la ruta del archivo zipalign para usar en CMD , el código final que debe ingresar será algo como:

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

Heitor Giacomini
fuente
0

Cuando estaba completamente desesperado, hice lo siguiente, que me permitió encontrar zipalign.exe oficial . La respuesta corta es utilizar el enlace de la parte oficial (pero no pública :-) del sitio:

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

Si usa esta receta después de 2018, probablemente necesite la explicación completa:

  1. Abra Android Studio y vaya

    Android Studio->Tools->Android->SDK Manager->Android SDK->SDK update site
  2. Escriba en el enlace del editor de texto y ábralo en el navegador. En mi caso, el primer enlace funcionó para mí:

    https://dl.google.com/android/repository/repository2-1.xml
  3. Busque las últimas herramientas de compilación de paquetes. En mi caso, fue build-tools_r28-rc1-windows.zip , pero puedes encontrar lo último en tu tiempo

    Ctrl+F build-tools_
  4. Sustituya en la URL la última parte con el nombre del paquete encontrado como lo hice:

    https://dl.google.com/android/repository/build-tools_r28-rc1-windows.zip
  5. Descargue el paquete, descomprímalo y afortunadamente encuentre el archivo oficial:

    zipalign.exe

Si te ayuda, tus comentarios son bienvenidos.

romano
fuente
Android Studio-> Herramientas-> Android-> SDK Manager-> Android SDK -> SDK Tools -> marque "Android SDK Build-Tools 28-rc1", luego aplique, instalará las herramientas de compilación y podrá encontrar zipalign. exe en SDK \ build-tools \ 28.0.0-rc1 después de instalado.
Richard Chan
Tienes razón, debería estar instalado, pero no fue instalado en mi caso. Lo comprobé. Esta receta es para aquellos que no tienen este archivo después de todos los intentos.
Roman
0

He solucionado este problema haciendo esto:

Abra Android Studio> Preferencias> Herramientas de SDK y marque "Herramientas de compilación de SDK de Android"

Dung Nguyen
fuente