tutorial support studio cordova gradle android-gradle
https://services.gradle.org/distributions/gradle-2.4-all.ziphttps://services.gradle.org/distributions/gradle-3.3-all.ziphttps://services.gradle.org/distributions/gradle-2.14.1-all.ziphttps://services.gradle.org/distributions/gradle-XYZ-all.ziphttps://dl.google.com/android/repository/tools_r25.2.5-macosx.ziphttps://dl.google.com/android/repository/tools_r25.2.5-linux.ziphttps://dl.google.com/android/repository/tools_r25.2.3-windows.zip

support - cordova-android version



Cordova build changes distributionUrl en el archivo gradle-wrapper.properties (5)

Sigo recibiendo la siguiente excepción de compilación cuando corro

cordova run android --verbose

  • ¿Qué salió mal? Se produjo un problema al evaluar el proyecto raíz ''android''.

    Error al aplicar el complemento [id ''android''] Se requiere la versión 2.10 de Gradle. La versión actual es 2.2.1. Si usa el envoltorio gradle, intente editar la distribuciónUrl en C: / Users / Project / gradle / wrapper / gradle-wrapper.properties a gradle-2.10-all.zip

La razón de esto es que la línea se cambia cuando ejecuto el comando de construcción cordova;

distributionUrl=http/://services.gradle.org/distributions/gradle-2.1.0-all.zip

a

distributionUrl=http/://services.gradle.org/distributions/gradle-2.2.1-all.zip

Alguna manera de prevenir esto ?


Como se puede adivinar, hay un script que se ejecuta detrás de la escena cuando se emite el comando "Cordova build android". Esta secuencia de comandos 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 encuentra la línea que incluye la siguiente variable en el archivo:

GradleBuilder.prototype.prepEnv

Y compruebe 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 debe cambiar a la URL gradle-2.10-all.zip;

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

inspirado de los siguientes SO; instalar gradle para usar en cordova construir 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á usando una Mac, por ejemplo, agregue el comando de exportación en .bash_profile

nano ~/.bash_profile



Puede probar lo siguiente para resolver el problema,

En Windows, cambie File -> Settings -> Builds,Execution,Deployment -> Build Tools -> Gradle -> Gradle home

En Mac OS, cambie Android Studio -> Preferences -> Builds,Execution,Deployment -> Build Tools -> Gradle -> Gradle home path

De lo contrario, utilice el gradle wrapper predeterminado y edite el Project/gradle/wrapper/gradle-wrapper.properties file''s distributionUrl siguiente manera:

distributionUrl=https/://services.gradle.org/distributions/gradle-2.10-all.zip


ACTUALIZACIÓN: 21 de mayo de 2017

Ok, este fue un problema realmente desagradable y me sentí obligado a escribir instrucciones completas para arreglar con la esperanza de que ahorre a los demás las horas que perdí en él. La siguiente es una combinación de googlear, leer la respuesta aceptada y resolver el proceso de prueba y error.

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

Suponiendo que hayas hecho eso y sigas sin trabajar, sigue leyendo.

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

Supongamos que ya tiene un emulador de Android Studio en funcionamiento con Marshmallow o Nougat (o ambos).

En mi caso, estaba tratando de hacer que Cordova funcionara.

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 corriendo en Mac, así que descargué :)

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

Descomprímelo y copie la carpeta de templates en /Users/arcseldon/Library/Android/sdk/tools

Explicación: Consulte la lógica dentro de la función module.exports.check_gradle , declarada en platforms/android/cordova/check_reqs.js para comprender cómo intenta derivar la ruta para el contenedor gradle. Esto lo cubre.

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

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

Deberías terminar con una jerarquía de ruta que incluye:

/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 , revise su aplicación cordova para plataformas / android / build.gradle, y busque la gradleVersion .

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

Para su versión, descargue de 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 disco local y haga referencia a ENV. variable. p.ej. (cambiando a su versión)

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

Explicación: si ejecuta una búsqueda, encontrará que esta variable de entorno es una anulación opcional para este env. variable. Consulte la asignación de variable para check_gradle , declarada en 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 otros motivos.