Pregunta plataforma cordova agregar Android no funciona al listar los objetivos de Android


Tengo un problema cuando quiero agregar una plataforma Android a mi aplicación phoneGap. Recibí este mensaje en mi CLI cuando ejecuto el comando cordova platform add android:

Checking Android requirements... (Error: An error occurred while listing Android targets)

Ya trato de agregar mi ubicación de SDK de Android en la variable de ruta.

Por favor, ayúdame ! :RE

Trabajo en Windows 7 64 bits, instalo la API de Android 17, 18 y 19 con el SDK de Android. Estoy en la versión 3.2 phoneGap.


75
2017-12-02 08:28


origen


Respuestas:


Para trabajar, este comando de cordova necesita usar algunos programas ubicados en su sdk/tools directorio. También necesitas tener instalado apache hormiga.

Luego debes agregar estos directorios a tu PATH variable del sistema:

Fondo:

  • supongamos que ha instalado su SDK de Android al c:\sdk\android directorio
  • te has instalado Hormiga Apache al c:\tools\apache-ant directorio

Entonces debes crear dos variables de sistema:

  1. ANDROID_HOME con el c:\sdk\android valor
  2. ANT_HOME con el c:\tools\apache-ant valor

Finalmente, debe modificar el PATH variable y agregar esos dos al final de la PATH'valor:

;%PATH%\tools;%ANT_HOME%\bin;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools

NOTA: para aquellos que usan Linux, la instrucción difiere un poco.

Más documentación disponible aquí.


167
2017-12-02 16:29



Para aquellos elegidos, ¿quién prefirió el entorno de desarrollo de Linux

Requisitos

Antes que nada, necesitarás algunas cosas para comenzar. Son: Android SDK y Apache Ant. Por supuesto, necesitarás Java SDK (JDK) instalado.

Para que Android SDK funcione para todos los usuarios, deberá modificar el /etc/environment archivo y luego reinicie su PC. Pero si no quieres hacerlo de la manera más difícil, sígueme, piensa en ti como el único usuario de PC. Y use /home/YOUR_USERNAME/.bashrc archivo para editar

Recordemos su ruta de inicio una vez para evitar más líneas largas. Agregue este a su /home/YOUR_USERNAME/.bashrc:

export HOME="/home/YOUR_USERNAME"

Entonces usaremos el $HOME notación cuando queremos decir "/home/YOUR_USERNAME directory".

Configuración de Android SDK

Descargue el archivo de Android SDK y descomprímalo en algún lugar. Digamos, tu directorio personal, $HOME/adt-bundle/.

Agregue estas líneas a su $HOME/.bashrc:

export ANDROID_HOME="$HOME/android-bundle/sdk/tools"
export ANDROID_PLATFORM_TOOLS="$HOME/android-bundle/sdk/platform-tools"
export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH"

Configuración de Ant

Al igual que con el SDK de Android, descargue un archivo y descomprímalo en su directorio personal. Luego agrégalos a tu .bashrc:

export ANT_HOME="$HOME/ant"
export PATH="$PATH:$ANT_HOME/bin"

He instalado uno a través de apt-get así que esto no afectó mi .bashrc.

Aplicando cambios

Para que estos cambios funcionen, debe trabajar en una nueva ventana de terminal (abierta después los cambios), o ejecuta source ~/.bashrc para hacer cambios disponibles en la ventana de terminal actual.

Terminando

Al final, obtendrás:

  1. Dos directorios en su directorio de inicio - ant y android-bundle
  2. Algunas líneas, agregadas a su .bashrc:

    export ANDROID_HOME="$HOME/android-bundle/sdk/tools"
    export ANDROID_PLATFORM_TOOLS="$HOME/android-bundle/sdk/platform-tools"
    export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH"
    
    export ANT_HOME="$HOME/ant"
    export PATH="$PATH:$ANT_HOME/bin"
    

42
2018-01-15 16:09



Ejecute el comando "Android" desde la carpeta adt \ sdk \ tools e instale las herramientas y el SDK más recientes. También asegúrese de que su RUTA tenga las variables correctas.

Para esto, necesitarás instalar ANT, JAVA JDK y un SDK de Android instalado

JAVA_HOME (C: \ Archivos de programa \ Java \ jdk)

ANT_HOME ({ubicación de hormiga} \ apache \ apache-ant)

ANDROID_HOME ({android sdk location} \ android-sdk)

Añádalos a su variable PATH como% ANT_HOME% / bin;% ANDROID_HOME% \ tools;% ANDROID_HOME% \ platform-tools;% JAVA_HOME% \ bin

Cierre y vuelva a abrir su cmd y ejecute su comando nuevamente.

Similar a PhoneGap / Cordova Android Development 


21
2018-02-06 20:47



No estoy seguro de si este es su problema, pero me he encontrado con errores similares cuando el caché de la biblioteca de Córdoba se contamina con algo corrupto. Para solucionarlo, solo necesita eliminar el caché de cordova, y se volverá a llenar automáticamente la próxima vez que use 'cordova'.

En OS X, este directorio es ~ / .cordova. En Windows, asumo que todavía es .cordova en el directorio de inicio de tus usuarios.


4
2017-12-02 08:52



La respuesta es todas las anteriores". Haga lo mencionado con las variables de entorno, sin embargo, también haga esto:

C: \ Users {YOUR_NAME} .cordova \ lib \ android \ cordova \ 3.5.0 \ framework edita el archivo project.properties y cambia target = android-19 a target = android-20.

Presumiblemente, esto tendrá que cambiarse para la próxima versión de sdk de Android hasta que se resuelva este pequeño problema.


4
2017-07-17 19:39



Tuve el mismo problema a pesar de que las variables de ruta se configuraron exactamente según las instrucciones. Después de pasar por múltiples archivos, finalmente lo resolvió. Para mí (Windows 7 enterprise 64 bit) tuve que modificar check_reqs.js y create.js de "C: \ Users \ .cordova \ lib \ android \ cordova \ 3.5.0 \ bin \ lib \" carpeta para incluir la ruta absoluta para android.bat. Mi SDK de Android está en "C: \ Android \ android-sdk".

En check_reqs.js modifiqué

child_process.exec('android list targets', function(err, stdout, stderr) {

a

child_process.exec('C:\\Android\\android-sdk\\tools\\android.bat list targets', function(err, stdout, stderr) {

En create.js modifiqué la declaración

return exec('android update project --subprojects --path "' + projectPath + '" --target ' + target_api + ' --library "' + path.relative(projectPath, targetFrameworkDir) + '"');

a

return exec('C:\\Android\\android-sdk\\tools\\android.bat update project --subprojects --path "' + projectPath + '" --target ' + target_api + ' --library "' + path.relative(projectPath, targetFrameworkDir) + '"');

Además, no olvides los dobles "\\" en el camino absoluto


3
2018-05-27 20:20



después de una larga lucha, después de hacer todas las sugerencias anteriores más de una vez con creciente desesperación, simplemente abrí mi cmd como administrador. funcionó. Supongo que me acabo de acostumbrar a "sudo" antes de obtener esta pc.


2
2018-02-05 16:45



Para aquellos que han encontrado este problema, agrego algo extra que puede ser útil, en mi caso tenía todas las variables configuradas correctamente y esto aún no podía agregar la plataforma Android y lo hice, ¡deshabilité mi avast antivirus y soplo! todo fluía sin problemas, lo que sucedía era que el antivirus estaba bloqueando la creación de la plataforma.

También fue importante para mí reiniciar la PC. ;)

Saludos.


2
2018-03-31 04:36



Me di cuenta del problema con Cygwin / Windows 7. El problema se debe a las formas ligeramente diferentes en que los shells de Cygwin y MS-DOS tratan los archivos .bat.

Durante "agregar plataforma", cordova invoca "android":

C:\Users\xxx\.cordova\lib\android\cordova\3.4.0\bin\lib\check_reqs.js

Donde llama 'objetivos de la lista de Android' (en la línea 73)

"android" debería resolverse en /xx/android-sdk/tools/android.bat o xx: \ android-sdk \ tools \ android.bat. (Y, de hecho, sí, puedo ejecutar "android" en el shell de comandos de MS-DOS, pero no en el shell de Cygwin. Allí necesito agregar ".bat").

"android" sin ".bat" falla en el shell de Cygwin porque android.exe no existe (solo .bat lo hace). Cambiar la línea 73 para invocar 'blancos de la lista android.bat' resolverá su problema (o dará un mensaje de error razonable).

Otra solución es ejecutar cordova en un shell de MS-DOS en lugar de shell de Cygwin.


1
2018-04-28 14:27



Aquí tenemos una lista de soluciones, así que agrego mi. Eso no estaba claro para mí hasta que lo intenté. Debe agregar% ANT_HOME% \ bin;% ANDROID_HOME% \ tools;% ANDROID_HOME% \ platform-tools a la variable USER PATH, no a una de Sistema. La variable PATH del sistema concatenará automáticamente la variable USER PATH y traducirá las variables a su valor. Espero que ayude a alguien. PD Mi sistema operativo es Win 7x64


0
2018-06-13 07:37