run instalar android cordova

instalar - los requisitos de Android cordova fallaron: "No se pudo encontrar una versión instalada de Gradle"



cordova-android npm (15)

Estoy tratando de construir un proyecto de Android Cordova usando las herramientas más recientes. Seguí las instrucciones here :

$ cordova create myApp com.myCompany.myApp myApp $ cd myApp $ cordova platform add [email protected] --save $ cordova requirements android --verbose

Pero el resultado es:

Running command: android list targets Command finished with error code 0: android list,targets Requirements check results for android: Java JDK: installed 1.8.0 Android SDK: installed true Android target: installed android-25,android-23 Gradle: not installed Could not find an installed version of Gradle either in Android Studio, or on your system to install the gradle wrapper. Please include gradle in your path, or install Android Studio Error: CordovaError: Some of requirements check failed at /usr/local/nodejs_next/lib/node_modules/cordova/src/cli.js:401:45 at _fulfilled (/usr/local/nodejs_next/lib/node_modules/cordova/node_modules/q/q.js:787:54) at self.promiseDispatch.done (/usr/local/nodejs_next/lib/node_modules/cordova/node_modules/q/q.js:816:30) at Promise.promise.promiseDispatch (/usr/local/nodejs_next/lib/node_modules/cordova/node_modules/q/q.js:749:13) at /usr/local/nodejs_next/lib/node_modules/cordova/node_modules/q/q.js:557:44 at flush (/usr/local/nodejs_next/lib/node_modules/cordova/node_modules/q/q.js:108:17) at _combinedTickCallback (internal/process/next_tick.js:73:7) at process._tickCallback (internal/process/next_tick.js:104:9)

Parece que no puede encontrar Gradle (no estoy seguro de dónde se supone que debe estar).

He visto reports de problemas con Cordova y Android SDK Tools 25.3, pero esto parece ser diferente, y tengo 25.2.3 (ver más abajo).

Tengo lo siguiente (esto está en CentOS 6.8):

$ cordova --version 6.5.0 $ node --version v6.10.2 $ npm --version 3.10.10 $ java -version openjdk version "1.8.0_121" $ echo $JAVA_HOME /usr/lib/jvm/java-1.8.0 $ echo $ANDROID_HOME /usr/local/android-sdk # I installed the Android SDK from here # https://developer.android.com/studio/index.html#downloads # under "Get just the command line tools" $ /usr/local/android-sdk/tools/bin/sdkmanager --list Installed packages: Path | Version | Description | Location ------- | ------- | ------- | ------- build-tools;23.0.3 | 23.0.3 | Android SDK Build-Tools 23.0.3 | build-tools/23.0.3/ build-tools;25.0.2 | 25.0.2 | Android SDK Build-Tools 25.0.2 | build-tools/25.0.2/ extras;android;m2repository | 47.0.0 | Android Support Repository | extras/android/m2repository/ extras;google;m2repository | 46 | Google Repository | extras/google/m2repository/ patcher;v4 | 1 | SDK Patch Applier v4 | patcher/v4/ platform-tools | 25.0.4 | Android SDK Platform-Tools | platform-tools/ platforms;android-23 | 3 | Android SDK Platform 23 | platforms/android-23/ platforms;android-25 | 3 | Android SDK Platform 25 | platforms/android-25/ tools | 25.2.3 | Android SDK Tools 25.2.3 | tools/

ACTUALIZAR:

No parece mencionarse en ningún lugar de los documentos de Cordova o Android, pero si está utilizando las herramientas de línea de comandos de Android sin Android Studio, debe instalar manualmente Gradle. Una vez que lo haga, y esté en su RUTA, este error desaparecerá.

Una cosa adicional que me confundía: en versiones anteriores de las herramientas de Android SDK, había un script de envoltura de Gradle en tools/templates/gradle/wrapper/gradlew . Esto también se puede usar para instalar Gradle, pero me resultó más fácil instalarlo manualmente. Esto parece haber sido eliminado a partir de la última versión.


Mac OS

Gradle se puede agregar en la Mac agregando la siguiente línea a ~/.bash_profile . Si el archivo no existe, use touch ~/.bash_profile . Este archivo oculto se puede hacer visible en Finder mediante Command + Shift + .

export PATH=${PATH}:/Applications/Android/ Studio.app/Contents/gradle/gradle-4.6/bin/

Use source ~/.bash_profile para cargar la nueva ruta directamente en su sesión de terminal actual.


Solución para Linux con apt-get (p. Ej .: Ubuntu, Debian)

Tengo un problema bastante similar Obtuve el error:

Error: Could not find an installed version of Gradle either in Android Studio, or on your system to install the gradle wrapper. Please include gradle in your path, or install Android Studi

pero sin excepción. Lo resolví en Ubuntu por

sudo apt-get install gradle

También encontré comandos que permiten instalar la versión más reciente de gradle en Ubuntu. Funciona solo cuando se ejecuta el primer comando antes (probablemente algunas dependencias son incorrectas).

sudo add-apt-repository ppa:cwchien/gradle sudo apt-get update sudo apt-get install gradle-ppa

https://wtanaka.com/node/8079

Si no funciona, intente:

export PATH=$PATH:/opt/gradle/gradle-3.5/bin

Más información:

https://askubuntu.com/questions/915980/package-is-installed-and-is-not-detected-gradle/915993#915993

Para CentOS

La instrucción de instalación gradle para CentOS se encuentra debajo de este enlace

https://gist.github.com/parzonka/9371885

Actualizar

Ahora instalo gradle por sdkman , es algo así como nvm para node.

Instalar sdkman

curl -s "https://get.sdkman.io" | bash

Instalar gradle

sdk install gradle 4.0.2


Actualice su cordova a la última versión y el problema debería resolverse. En caso de que el problema no se resuelva, configure la ruta en la variable de entorno (en el caso de Windows). Ejemplo: Nombre del valor de la variable del sistema GRADLE_HOME Valor D: / Android / Android Studio / gradle / gradle-4.3.1 (reemplace con su ruta)


Ejecutar en terminal:

$ sudo apt-get update $ sudo apt-get install gradle

Esto funciona para mí en Ubuntu 18.04


Estoy usando Cordova versión 7.0.1 y la versión de Android Cordova es 6.2.3. Estaba enfrentando el problema mientras realizaba la compilación de Android. Estoy usando solo Cordova CLI y no estoy usando Android Studio en absoluto.

La solución rápida para este problema antes de que su oficial se solucione en Córdoba es la siguiente:

  1. Busque el archivo check_reqs.js carpeta plataformas / android / cordova / lib
  2. Edite la parte else de la comprobación nula variable get_gradle_wrapper en la función get_gradle_wrapper siguiente manera:

Código existente:

else { //OK, let''s try to check for Gradle! return forgivingWhichSync(''gradle''); }

Código modificado:

else { //OK, let''s try to check for Gradle! var sdkDir = process.env[''ANDROID_HOME'']; return path.join(sdkDir, ''tools'', ''templates'', ''gradle'', ''wrapper'', ''gradlew''); }

NOTA: Este cambio debe hacerse cada vez que se quita la plataforma de Android y se vuelve a agregar

ACTUALIZACIÓN: en mi caso, ya tenía gradle wrapper dentro de mi SDK de Android y no encuentro la necesidad de instalar gradle explícitamente. Por lo tanto, hice esta solución para minimizar mi impacto y esfuerzo


Extender respuesta para usuarios de Linux (~ mint):
1. Instale Android Studio (muchas herramientas han quedado en desuso para la línea de comandos, por lo que probablemente sea necesario). Suponiendo que siga las instrucciones del autor, su Android Studio se instalará en / usr / local / android-studio /. Al momento de escribir, la versión de Gradle en Android Studio es 3.2, mira la tuya con ls /usr/local/android-studio/gradle/ .
2. Agregue su comando gradle, esto puede hacerse extendiendo la RUTA, como sugirió @ surendra-shrestha (debe escribirse en ~ / .bashrc para preservar el cambio de RUTA), agregando un alias echo ''export alias gradle=/usr/local/android-studio/gradle/gradle-3.2/bin/gradle'' >> ~/.bashrc && source ~/.bashrc . O haciendo un enlace simbólico: sudo ln -sn /usr/local/android-studio/gradle/gradle-3.2/bin/gradle /usr/bin/gradle (esta fue mi elección).
3. Ejecute los cordova requirements para verificar que todo esté bien, debería generar algo como:

Requirements check results for android: Java JDK: installed 1.8.0 Android SDK: installed true Android target: installed android-26,android-25,android-24,android-23,android-22,android-21,android-19,Google Inc.:Google APIs:19 Gradle: installed /usr/local/android-studio/gradle/gradle-3.2/bin/gradle


Intenté muchos pero finalmente no funcionó,

  1. Instalé gradle usando el puerto de macos
  2. Configuré la ruta GRADLE_HOME como se dijo después de instalar gradle
  3. Ejecuté ::

sudo chmod -R a+rwx /Library/Java/JavaVirtualMachines *

sudo chmod -R a+rwx *

sudo chmod 777 {your-gradle-path}

Inmediatamente comenzó a funcionar


Para mí, el problema era que mi versión de Android todavía estaba en 6.1.2, que no es compatible con el nuevo Android Studio 2.3.1.

Entonces lo que hice fue correr

cordova platform rm android cordova platform add [email protected]


Para responder la pregunta de OP:

Como está en Linux, tendrá que instalar Gradle usted mismo, tal vez siguiendo esta guía , y luego coloque una entrada en PATH en una carpeta que contenga el ejecutable de gradle .

Cordova tiene algún código para buscar gradle si tienes Android Studio pero solo para Mac y Windows, mira aquí:

https://github.com/apache/cordova-android/blob/e13e15d3e9aa4b9a61c6ece434e7c023fa5c3553/bin/templates/cordova/lib/check_reqs.js#L101-L132

Semi relacionado con la pregunta de OP, ya que estoy en Windows.

Después de actualizar a Android Studio 2.3.1 , [email protected] , [email protected] ([email protected]), tuve problemas de compilación debido a la falta del objetivo 25 y gradle.

El primer problema se resolvió con un comentario de X.Zhang (es decir, cambiar android a avdmanager ), por cierto, parece un compromiso de reparación que aterrizó en github, por lo que cordova-android debería solucionarlo en 6.3.0 (pero no lo probé).

El segundo problema fue el siguiente:

El problema resultó ser que process.env[''ProgramFiles''] evalúa como ''C://Program Files (x86)''; mientras que tengo Android Studio en C://Program Files .

Entonces, el truco rápido es anular este valor o instalar Android Studio en el otro lugar.

// platforms/android/cordova/lib/check_reqs.js module.exports.get_gradle_wrapper = function() { var androidStudioPath; var i = 0; var foundStudio = false; var program_dir; if (module.exports.isDarwin()) { // ... } else if (module.exports.isWindows()) { // console.log(process.env[''ProgramFiles''])''; // add one of the lines below to have a quick fix... // process.env[''ProgramFiles''] = ''C://Program Files (x86)''; // process.env[''ProgramFiles''] = ''C://Program Files''; var androidPath = path.join(process.env[''ProgramFiles''], ''Android'') + ''/'';

No estoy seguro de cuál sería la solución adecuada para manejar ambas carpetas de manera robusta (aparte de iterar sobre ambas carpetas).

Obviamente, esto debe corregirse en el proyecto cordova-android en sí mismo; de lo contrario, cada vez que cordova platform rm sus soluciones desaparecerán.

Abrí el boleto en Cordova JIRA:

https://issues.apache.org/jira/browse/CB-12677


Para ventanas:

-Descargue la última versión de Gradle ( https://gradle.org/releases )

-Crear una carpeta y descomprimir archivos (uso C: / Archivos de programa (x86) / gradle)

-Copie la ruta con el directorio bin incluido (C: / Archivos de programa (x86) / gradle / bin)

-Ajuste la ruta C: / Archivos de programa (x86) / gradle / bin (en mi ejemplo) a "Variables de entorno de ruta"

Nombre de variable "Ruta" y valor de variable "C: / Archivos de programa (x86) / gradle / bin" para ambos: tabla de variables de usuario y tabla de variables del sistema

Es posible que deba volver a abrir la "Línea de comando rápido"

Para probar, escriba gradle en el indicador.


Quizás instaló el último Android Studio 2.3.1, cambió los android list targets comandos a los android list targets de la avdmanager list targets , así que hay cómo solucionarlo:

agregue la ruta <android-sdk>/tools/bin a PATH , esto es para MacOX.

export PATH="$PATH:/Users/<username>/Library/Android/sdk/tools/bin"

cambie su código de proyecto cordova <your-cordova-project>/platforms/android/cordova/lib/android_sdk.js .

cambio

module.exports.list_targets_with_android = function() { return superspawn.spawn(''android'', [''list'', ''targets''])

a

module.exports.list_targets_with_android = function() { return superspawn.spawn(''avdmanager'', [''list'', ''targets''])


Seguí este tutorial de Qiita para resolver mi problema.

Entorno: Cordova 8.1.1 , Android Studio 3.2 , cordova-android 7.0.0

  1. Establecer gradle PATH en el archivo .profile .

export PATH="/Applications/Android Studio.app/Contents/gradle/gradle-4.6/bin":$PATH

  1. Exportar la configuración.

source ~/.profle

  1. Ahora construye el proyecto cordova.

cordova build android

PD: Si [email protected] causa un error de compilación, baje la versión de su plataforma a 6.3.0 .


Si tiene instalado Android Studio, puede probar:

export PATH="$PATH:/home/<username>/android-studio/gradle/<gradle-4.0>/bin"

Esto resolvió mi problema.


mismo problema pero muy simple en Mac con brew:

  • actualización de preparación
  • brew instalar gradle