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
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
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:
-
Busque el archivo
check_reqs.js
carpeta plataformas / android / cordova / lib -
Edite la parte else de la comprobación nula variable
get_gradle_wrapper
en la funciónget_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ó,
- Instalé gradle usando el puerto de macos
- Configuré la ruta GRADLE_HOME como se dijo después de instalar gradle
- 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í:
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:
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
-
Establecer
gradle
PATH en el archivo
.profile
.
export PATH="/Applications/Android Studio.app/Contents/gradle/gradle-4.6/bin":$PATH
- Exportar la configuración.
source ~/.profle
- 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
"Objetivo de Android: no instalado"
Instale el objetivo de Android / nivel de API: "android-25".
Debe crear un dispositivo virtual Android (nivel API: "android-25" o más reciente) o debe agregar un dispositivo real Android.
También puede importar el proyecto en Android Studio y ejecutarlo.
Puedes consultar aquí:
https://cordova.apache.org/docs/en/latest/guide/platforms/android/index.html