zipalign: comando no encontrado

5 minutos de lectura

avatar de usuario
Zulhilmi Zainudin

Estoy trabajando en el proyecto Ionic ahora en el que quiero zipalign la android-release-unsigned.apk expediente. Seguí esta guía de Ionic.

cuando corro zipalign -v 4 /Users/zulhilmizainudin/Desktop/kl-parking/platforms/android/build/outputs/apk/android-release-unsigned.apk android-release.apk comando, obtengo -bash: zipalign: command not found error.

Aquí es donde zipalign se sienta en mi sistema:

/Users/zulhilmizainudin/Library/Android/sdk/build-tools/21.1.2

Traté de copiar zipalign dentro de él y lo puse dentro de mi carpeta de proyecto Ionic y ejecuté el comando zipalign nuevamente. Pero aún así no se encuentra el mismo comando.

¿Qué debería hacer ahora?

  • “Traté de copiar zipalign dentro de él y lo puse dentro de mi carpeta de proyecto Ionic y ejecuté el comando zipalign nuevamente. Pero aún así no encontré el mismo comando”. ¿Y si corres? ./zipalign ?

    – Miguel

    25 de junio de 2015 a las 11:01

  • El directorio donde zipalign está ubicado no está en su RUTA, por lo que debe especificar dónde zipalign se encuentra cuando lo ejecuta.

    – Miguel

    25 de junio de 2015 a las 11:04

  • como localizar zipalign dentro de mi PATH?

    – Zulhilmi Zainudin

    25 de junio de 2015 a las 11:07

  • Para agregar el directorio de herramientas de compilación a su RUTA, usaría algo como export PATH=$PATH:/Users/zulhilmizainudin/Library/Android/sdk/build-tools/21.1.2

    – Miguel

    25 de junio de 2015 a las 11:16

¡Resuelto!

  1. Yo copié zipalinear archivo de mi Library/Android/sdk/build-tools/21.1.2 en mi carpeta de proyecto Ionic

  2. añado ./ delante del comando zipalign como este – ./zipalign -v 4 /Users/zulhilmizainudin/Desktop/kl-parking/platforms/android/build/outputs/apk/android-release-unsigned.apk android-release.apk

  3. Hecho. ahora entiendo android-release.apk dentro de mi carpeta de proyecto Ionic.

Gracias a Michael por la solución!

  • Una sugerencia menor es usar un enlace simbólico, en lugar de copiar el archivo binario en sí.

    – Antonio

    01/03/2017 a las 19:00

  • Esta es la única solución. Probé 10 000 soluciones sugeridas, solo esta 1 funciona. Gracias @Zulhilmi

    – deanwilliammills

    19 de abril de 2018 a las 13:57


  • en mi caso no arrojó ningún error pero no obtuve ningún archivo apk nuevo. ¿Por qué?

    – Muhammad Abdalá

    31 oct 2019 a las 20:05

si estás usando ventanasla forma correcta es agregar la ruta a zipalign.exe como variable de entorno PATH.

  1. encontrar donde zipalign.exe se encuentra en tu PC, en mi caso este fue

C:\Users\random-username\AppData\Local\Android\sdk1\build-tools\24.0.1

  1. Luego agregue esta ubicación como una de las entradas en su Variable de entorno PATH.

  • Vuelva a abrir la ventana de comandos después de realizar la configuración para que tenga un nuevo efecto.

    – Naga

    3 de noviembre de 2018 a las 18:20

  • Lo mismo si está trabajando con el cli dentro de vscode, ciérrelos todos antes de volver a abrir y ejecutar el comando nuevamente

    – Rafael Balet

    21 de abril de 2021 a las 6:54

avatar de usuario
Abayomi Israel

Para evitar especificar o navegar a sus directorios sdk/build-tools/* cada vez que desee compilar una versión de lanzamiento, simplemente puede agregar la ruta a su variable de entorno.

$ sudo nano ~/.bash_perfil

copia y pega lo siguiente:

exportar RUTA=${RUTA}:/Library/Android/sdk/build-tools/21.1.2

A continuación, puede guardar y salir:

control + o // para guardar en el archivo
control + X // para cerrar el archivo
$ fuente ~/.bash_profile

A continuación, puede ejecutar su zipalign comando desde el directorio CLI de su proyecto.

  • Esta debería ser la respuesta aceptada, ya que es la forma más fácil de resolver el problema.

    – Alex Steinberg

    31 de mayo de 2018 a las 14:58


Esto funcionó para mí en Mac. Instale y ejecute Android Studio (importante para iniciarlo una vez). Luego encuentra zipalign:

find ~/Library/Android/sdk/build-tools -name "zipalign"

ventanas

la forma correcta es agregar la ruta a zipalign.exe como variable de entorno PATH.

Encontrar dónde se encuentra zipalign.exe en su PC, en mi caso esto fue

C:\Users\username\AppData\Local\Android\sdk1\build-tools\29.0.2

Luego agregue esta ubicación como una de las entradas en su Variable de entorno PATH.

MAC

Para evitar especificar o navegar a sus directorios SDK/build-tools/* cada vez que desee crear una versión de lanzamiento, simplemente puede agregar la ruta a su variable de entorno.

$ sudo nano ~/.bash_profile

copia y pega lo siguiente:

export PATH=${PATH}:/Library/Android/sdk/build-tools/21.1.2

A continuación, puede guardar y salir:

control + o // to save to file
control + x // to close the file
$ source ~/.bash_profile

Luego puede ejecutar su comando zipalign desde el directorio CLI de su proyecto.

Si está creando una compilación de lanzamiento iónico, puede crear un archivo build.json en la carpeta raíz de su aplicación con la información que se proporciona a continuación.

{
"android": {
   "release": {
   "keystore": "Your keystore",
   "storePassword": "password",
   "alias": "alias name",
   "password" : "password",
   "keystoreType": ""
    }
}  }

asegúrese de que puede colocar su almacén de claves en la carpeta raíz de su aplicación o proporcione la ruta completa de su almacén de claves en el objeto del almacén de claves

ahora solo puede ejecutar este comando como se muestra a continuación

ionic cordova build android --release

este comando encuentra automáticamente su build.json y crea una compilación de lanzamiento firmada.

avatar de usuario
shoniisra

¡Resuelto!

Copié el archivo zipalign como Michael Said (de mi Biblioteca/Android/SDK/build-tools/28.0.3 en mi carpeta de proyecto Ionic)

PERO cuando corro

./zipalign -v 4 app-release-unsigned.apk botellamovil.apk

Obtuve

./zipalign: ERROR while loading shared libraries: libc++.so: cannot open shared object file: **No such file or directory**

Entonces, también copié lib y lib64 archivos, y luego funciona !!

Espero que sea útil 🙂 (y perdón por mi inglés)

¿Ha sido útil esta solución?