Saltar al contenido

Cordova compila cambios distributionUrl en el archivo gradle-wrapper.properties

Solución:

Como podría adivinarse, hay un script que se está ejecutando detrás de la escena cuando emite el comando “Cordova build android”. Este script debe encontrarse para ver la configuración especificada para la versión de Gradle.

Debe ir y verificar el siguiente archivo js:

$PROJECT_ROOT/platforms/android/cordova/lib/builders/GradleBuilder.js

Luego busque la línea que incluye la siguiente variable en el archivo:

GradleBuilder.prototype.prepEnv

Y verifique la variable distributionUrl:

var distributionUrl = process.env['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'] || 'http\://services.gradle.org/distributions/gradle-2.2.1-all.zip';

Eso es lo que está buscando y lo que necesita cambiar a la URL gradle-2.10-all.zip;

Ahora puede ejecutar el comando de compilación, ¡y listo!

inspirado en el siguiente SO; instalar gradle para usar en cordova build android

Creo que es mejor exportar la variable CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL

Ejemplo:

export
CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL=http\://services.gradle.org/distributions/gradle-2.14.1-all.zip

Si está utilizando una Mac, por ejemplo, agregue el comando de exportación en el .bash_profile

nano ~/.bash_profile

ACTUALIZACIÓN: 21 de mayo de 2017

Ok, este fue un problema realmente desagradable y me sentí obligado a escribir instrucciones completas para solucionarlo con la esperanza de que les ahorre a otros las horas que desperdicié en él. Lo siguiente es una combinación de buscar en Google, leer la respuesta aceptada y resolver las cosas a partir de prueba y error.

Antes de hacer cualquier otra cosa, asegúrese de cerrar Estibador si está funcionando. Un síntoma es que en Android Studio, el cuadro de diálogo de carga del emulador desaparece silenciosamente. Si ejecutó desde el comando de inicio de la aplicación, su aplicación simplemente se deja esperando para conectarse al dispositivo (mensaje emitido).

Suponiendo que lo ha hecho y aún no funciona, siga leyendo.

Opcional (tal vez): fyi only – Personalmente, utilicé SDK Man para instalar una versión coincidente de Gradle en mi máquina.

Suponga que ya tiene un emulador de Android Studio que funciona con Marshmallow o Nougat (o ambos).

En mi caso, estaba intentando que Cordova trabajara.

Dependiendo de si desea comenzar de nuevo (recomendado), entonces:

cordova platform rm android
cordova platform add android

Primero se necesita una descarga. Descargue lo siguiente según su sistema operativo:

https://dl.google.com/android/repository/tools_r25.2.3-windows.zip

https://dl.google.com/android/repository/tools_r25.2.5-linux.zip

(Estaba ejecutando en Mac, así que descargué 🙂

https://dl.google.com/android/repository/tools_r25.2.5-macosx.zip

Descomprímalo y copie el templates carpeta en /Users/arcseldon/Library/Android/sdk/tools

Explicación: Ver la lógica en el interior module.exports.check_gradle función, declarada bajo platforms/android/cordova/check_reqs.js para comprender cómo está tratando de derivar la ruta para la envoltura de Gradle. Esto lo co-erige.

$ echo $ANDROID_HOME
/Users/arcseldon/Library/Android/sdk

Pude ver un tools subdirectorio, pero no templates carpeta dentro de eso. Así que copia el templates carpeta del zip descargado y extraído, y péguelo dentro $ANDROID_HOME/tools

Debe terminar con una jerarquía de ruta que incluya:

/Users/arcseldon/Library/Android/sdk/tools/templates/gradle/wrapper 

Esto ahora satisface la búsqueda de ruta desde la perspectiva del script.

en segundo lugar, verifique su aplicación cordova para plataformas / android / build.gradle, y busque el gradleVersion.


task wrapper(type: Wrapper) {
gradleVersion = '2.14.1'
}

Para su versión, descargue desde la URL de la siguiente manera:

https://services.gradle.org/distributions/gradle-XYZ-all.zip

reemplazando X, Y, Z según sea necesario para que coincida con su versión.

En mi caso,

https://services.gradle.org/distributions/gradle-2.14.1-all.zip

Otros ejemplos:

https://services.gradle.org/distributions/gradle-3.3-all.zip https://services.gradle.org/distributions/gradle-2.4-all.zip

Luego, una vez descargado, colóquelo en su unidad local y haga referencia con ENV. variable. p.ej. (cambiando a tu versión)

export CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL=file:///Users/myusername/temp/gradle-2.14.1-all.zip

Explicación: Si realiza una búsqueda, encontrará que esta variable de entorno es una anulación opcional para este env. variable. Consulte la asignación de variables para check_gradle, declarado bajo platforms/android/cordova/lib/builders/GradleBuilder.js

Ahora solo ejecuta:

cordova run android --verbose

Todo va bien, ahora todo debería “funcionar” para Android. En mi caso, iOS estaba listo para usar, pero usé Xcode 8.2 en lugar de Xcode 8.3 por otras razones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *