web-dev-qa-db-fra.com

Cordova build change distributionUrl dans le fichier gradle-wrapper.properties

Je continue à recevoir l’exception de construction suivante lors de l’exécution 

 cordova run Android --verbose
  • Qu'est-ce qui a mal tourné: Un problème est survenu lors de l'évaluation du projet racine 'Android' ..____.

    Échec de l'application du plug-in [id 'Android'] La version 2.10 de Gradle est requise. La version actuelle est la 2.2.1. Si vous utilisez le wrapper Gradle, essayez de modifier distributionUrl dans C:\Users\Project\gradle\wrapper\gradle-wrapper.properties pour gradle-2.10-all.Zip

La raison en est la modification de la ligne lorsque j'exécute la commande de compilation cordova depuis; 

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

à

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

Un moyen d'éviter cela?

24
shamaleyte

Comme vous pouvez le deviner, un script est exécuté en coulisse lorsque vous exécutez la commande "Cordova build Android". Ce script doit être trouvé afin de voir la configuration spécifiée pour la version de Gradle. 

Vous devez aller vérifier le fichier js suivant:

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

Recherchez ensuite la ligne incluant la variable suivante dans le fichier:

GradleBuilder.prototype.prepEnv

Et vérifiez la variable distributionUrl:

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

C'est ce que vous recherchez et ce que vous devez changer en URL gradle-2.10-all.Zip;

Maintenant, vous pouvez exécuter la commande de construction, et voilà!

inspiré du SO suivant; installer gradle pour utiliser dans cordova build Android

62
shamaleyte

Je pense qu'il est préférable d'exporter la variable CORDOVA_Android_GRADLE_DISTRIBUTION_URL

Exemple:

export
CORDOVA_Android_GRADLE_DISTRIBUTION_URL=http\\://services.gradle.org/distributions/gradle-2.14.1-all.Zip

Si vous utilisez un Mac, par exemple, ajoutez la commande d'exportation dans le .bash_profile

nano ~/.bash_profile
23
jordenysp

MISE À JOUR: 21 mai 2017

Ok, c’était un problème vraiment méchant et je me suis senti obligé d’écrire des instructions complètes pour résoudre ce problème, dans l’espoir que cela épargne aux autres les heures que j’ai perdues. Vous trouverez ci-dessous une combinaison de recherches sur Google, de lecture de la réponse acceptée et de résolution des problèmes d'essais et d'erreurs.

Avant de faire autre chose, assurez-vous de fermer Docker s’il est en cours d’exécution. Un symptôme est que dans Android Studio, la boîte de dialogue de chargement de l'émulateur disparaît silencieusement. Si vous avez exécuté la commande de démarrage de l'application, votre application est simplement laissée en attente de connexion à l'appareil (message émis). 

En supposant que vous avez fait cela et ne fonctionne toujours pas, lisez la suite.

Facultatif (peut-être): uniquement à titre personnel - Personnellement, j'ai utilisé SDK Man pour installer une version correspondante de Gradle sur ma machine. 

Supposons que vous ayez déjà un émulateur Android Studio en état de marche avec Marshmallow ou Nougat (ou les deux).

Dans mon cas, j'essayais alors de faire travailler Cordova.

Selon que vous souhaitiez recommencer (recommandé), puis:

cordova platform rm Android
cordova platform add Android

D'abord un téléchargement est nécessaire. Téléchargez ce qui suit en fonction de votre système d'exploitation:

https://dl.google.com/Android/repository/tools_r25.2.3-windows.Zip

https://dl.google.com/Android/repository/tools_r25.2.5-linux.Zip

(Je courais sur Mac, donc téléchargé :)

https://dl.google.com/Android/repository/tools_r25.2.5-macosx.Zip

Décompressez-le et copiez le dossier templates dans /Users/arcseldon/Library/Android/sdk/tools

Explication: Reportez-vous à la logique à l'intérieur de la fonction module.exports.check_gradle, déclarée sous platforms/Android/cordova/check_reqs.js, pour comprendre comment elle tente de dériver le chemin d'accès au wrapper de dégradé. Cela le renforce.

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

Je pouvais voir un sous-répertoire tools, mais aucun dossier templates à l'intérieur de celui-ci. Copiez donc le dossier templates à partir du fichier Zip téléchargé et extrait et collez-le à l'intérieur de $Android_HOME/tools

Vous devriez terminer avec une hiérarchie de chemins comprenant:

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

Cela satisfait maintenant la recherche de chemin du point de vue du script.

Deuxièmement, vérifiez votre application cordova pour les plates-formes/Android/build.gradle et recherchez la gradleVersion.

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

Pour votre version, téléchargez à partir de l'URL comme suit:

https://services.gradle.org/distributions/gradle-X.Y.Z-all.Zip

en remplaçant X, Y, Z selon les besoins pour correspondre à votre version.

Dans mon cas,

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

autres exemples:

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

Ensuite, une fois téléchargé, placez-le sur votre disque local et faites référence à ENV. variable. par exemple. (passage à votre version)

export CORDOVA_Android_GRADLE_DISTRIBUTION_URL=file:///Users/myusername/temp/gradle-2.14.1-all.Zip

Explication: Si vous lancez une recherche, vous constaterez que cette variable d'environnement est une substitution facultative pour cet env. variable . Voir l'affectation de variable pour check_gradle, déclarée sous platforms/Android/cordova/lib/builders/GradleBuilder.js

Maintenant, lancez simplement:

cordova run Android --verbose

Tout va bien, tout devrait maintenant "fonctionner" pour Android. Dans mon cas, iOS était prêt à l'emploi - mais j'ai utilisé Xcode 8.2 au lieu de Xcode 8.3 pour d'autres raisons.

10
arcseldon

Cela nous est arrivé parce que nous avons accidentellement laissé Android Studio construire notre projet Cordova, provoquant ainsi des erreurs sans fin.

Epargnez-vous pendant que vous pouvez:

cordova platform rm Android
cordova platform add Android
4
Lightbeard

Vous pouvez essayer ce qui suit pour résoudre le problème,

Sous Windows, changez le chemin File -> Settings -> Builds,Execution,Deployment -> Build Tools -> Gradle -> Gradle home

Sous Mac OS, modifiez le chemin Android Studio -> Preferences -> Builds,Execution,Deployment -> Build Tools -> Gradle -> Gradle home

Sinon, utilisez l'éditeur de niveaux par défaut et éditez Project\gradle\wrapper\gradle-wrapper.properties file's distributionUrl comme ceci:

distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.Zip
1
Gandhi

Essayez simplement d'ouvrir le fichier projet/plates-formes/Android/build.gradle et de le mettre à jour

dépendances {
chemin de classe 'com.Android.tools.build:gradle:X.X.X'
}

et 

tâche wrapper (type: Wrapper) {
gradleVersion = 'X.X'
}

voir la référence ici https://developer.Android.com/studio/releases/gradle-plugin.html#updating-gradle

changer le X.X 

0
linhadiretalipe