Cordova build change distributionUrl dans gradle-wrapper.fichier de propriétés

je reçois la génération suivante exception lorsque j'run

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

    N'a pas réussi à appliquer le plugin [id 'android'] La version 2.10 de Grad est nécessaire. La version actuelle est 2.2.1. Si vous utilisez l'enrubanneur gradle, essayez d'éditer la distributionUrl dans C:UsersProjectgradlewrappergradle-wrapper.propriétés à grader-2.10-all.zip

La raison pour c'est la ligne a changé quand je lance le cordova commande de construction;

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

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

de Toute façon d'éviter cela ?

19
demandé sur shamaleyte 2016-05-10 00:08:52

5 réponses

comme vous pouvez le deviner, il y a un script qui est exécuté derrière la scène lorsque vous lancez la commande "Cordova build android". Ce script doit être trouvé pour voir la configuration spécifiée pour la version Gradle.

Vous devez aller et vérifiez les points suivants fichier js:

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

puis trouver 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 Grad-2.10-all.zip URL;

Maintenant vous pouvez lancer la commande build, et voilà!

inspirée de la suite DONC; installer gradle pour l'utilisation de cordoue construire android

57
répondu shamaleyte 2017-05-23 11:54:59

je pense que c'est mieux pour 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, ajouter la commande exporter dans le .bash_profile

nano ~/.bash_profile
16
répondu jordenysp 2016-09-01 18:49:47

UPDATE: 21 May 2017

Ok, c'était un problème très désagréable et je me suis senti obligé d'écrire des instructions complètes pour réparer dans l'espoir d'épargner aux autres les heures que j'ai gaspillées avec. Ce qui suit est une combinaison de googling, la lecture de la réponse acceptée, et l'élaboration des choses à partir d'essais et d'erreurs.

Avant de faire quoi que ce soit d'autre.. assurez-vous de fermer Panneau si elle est en cours d'exécution. Un symptôme est que dans Android Studio, la charge de l'émulateur le dialogue disparaît silencieusement. Si vous avez lancé la commande app start, votre application est simplement laissée en attente pour se connecter à l'appareil (message émis).

en présumant que vous avez fait cela et que vous ne travaillez toujours pas, lisez la suite.

Option (peut-être): pour information seulement - Personnellement, j'ai utilisé SDK Man pour installer une version correspondante de Gradle sur ma machine.

supposons que vous avez déjà un émulateur Android Studio avec Marshmallow ou Nougat (ou les deux).

dans mon cas, J'essayais alors de faire travailler Cordova.

Selon si vous souhaitez recommencer (recommandé), puis:

cordova platform rm android
cordova platform add android

Premier téléchargement est nécessaire. Télécharger la suivante selon votre OS:

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

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

(j'ai été en cours d'exécution sur Mac, donc téléchargé:)

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

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

Explication: Voir la logique à l'intérieur de module.exports.check_gradle fonction, déclarée sous platforms/android/cordova/check_reqs.js pour comprendre comment il essaie de dériver le chemin pour l'emballage du Grad. Cette co-erces.

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

j'ai pu voir un tools sous-répertoire, mais pas de templates dossier à l'intérieur. Copiez donc le templates dossier de la zone téléchargée et extraite, et le coller à l'intérieur $ANDROID_HOME/tools

vous devez terminer avec une hiérarchie de chemins qui inclut:

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

ceci satisfait maintenant la recherche de chemin script de point de vue.

Secundo, vérifiez votre application cordova pour plates-formes/android / build.gradle, et la recherche de l' gradleVersion.

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

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

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

remplacer X, Y, Z au besoin pour correspondre à votre version.

Dans mon cas,

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

exemples:

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

ensuite, une fois Téléchargé, placez sur votre lecteur local et la référence avec ENV. variable. par exemple. (changeant de ton version)

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

Explication: si vous effectuez une recherche, vous verrez que cette variable d'environnement est une option de remplacement pour cet environnement. variable. Voir la variable assignment pour check_gradle, a déclaré en vertu de l' platforms/android/cordova/lib/builders/GradleBuilder.js

Maintenant il suffit d'exécuter:

cordova run android --verbose

Tout va bien, tout devrait "fonctionne" pour Android. Dans mon cas, iOS était sorti de la boîte - mais j'ai utilisé Xcode 8.2 au lieu de Xcode 8.3 Pour d'autres raisons.

7
répondu arcseldon 2017-05-23 11:51:10

Vous pouvez essayer les méthodes suivantes pour résoudre le problème,

Sur Windows, Changer File -> Settings -> Builds,Execution,Deployment -> Build Tools -> Gradle -> Gradle home chemin

sur Mac OS, changer Android Studio -> Preferences -> Builds,Execution,Deployment -> Build Tools -> Gradle -> Gradle home chemin

sinon utilisez gradle wrapper 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
répondu Gandhi 2016-12-09 08:29:07

Essayez juste d'ouvrir le fichier de projet/plates-formes/android/build.gradle et de mise à jour

dépendances {

      classpath ' com.Android.outils.build: gradle: X. X. X'

}



et



tâche wrapper(type: Wrapper) {

        gradleVersion = 'X. X'

}

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



pour changer le X. X

0
répondu linhadiretalipe 2017-05-30 20:32:02