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 ?
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
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
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.
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
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