Gradle version 3.3 ne prend pas en charge la méthode forTask () sur BuildActionExecuter

111

Je viens de mettre à jour mon Android Studio vers 3.0 Canary 1. Je travaille maintenant sur mon projet existant sur Android Studio 3.0 Canary 1. Par défaut gradle: 3.0.0-alpha1 est défini dans mon projet: gradle_file. J'ai donc changé ma version gradle en 2.2.3 et maintenant j'obtiens cette erreur:

Erreur: échec de l'exécution de Gradle.

Cause: La version de Gradle que vous utilisez (3.3) ne prend pas en charge la méthode forTasks () sur BuildActionExecuter. La prise en charge de ceci est disponible dans Gradle 3.5 et toutes les versions ultérieures.

J'ai joint mon fichier gradle ici

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
Ajay Jayendran
la source
5
Quelqu'un peut-il suggérer comment résoudre ces problèmes sans avoir à mettre à jour la version Gradle et la version du plugin Android? Parce que cela nécessite beaucoup d'autres changements que nous ne pouvons pas faire en raison de certaines contraintes commerciales.
Sasuke Uchiha

Réponses:

196

J'ai juste eu le même problème. Correction du problème en changeant Gradle distributionUrl dans "gradle-wrapper.properties".

Voici ce que j'ai configuré:

#Wed Mar 22 16:13:58 BRT 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

pour plus de détails

Vidéo officielle pour faciliter la migration https://www.youtube.com/watch?v=oBsbI8ICYKg

voir aussi le commentaire ci-dessous de @TmTron

falico
la source
19
Pour quiconque souhaite connaître la dernière distribution, accédez au répertoire services.gradle.org/distributions . Tous sont répertoriés
IG Pascual
4
Veuillez lire le commentaire @IGPascual avant de passer à la version spécifique, car vous pouvez simplement mettre à jour la version vers la dernière version actuellement disponible. Lorsque ce commentaire a été publié, la version actuelle est 4.0 (stable). Donc, c'est sûr si vous changez pourdistributionUrl=https\://services.gradle.org/distributions/gradle-4.0-all.zip
HendraWD
4
Faites juste attention lorsque vous ouvrez une application multi-module: Android Studio ne peut vous montrer qu'un seul champ de propriétés de gradle-wrapper dans la vue Projet-Android. pour vous assurer de tout modifier, utilisez Rechercher dans le chemin (CTRL + MAJ + F) et recherchez distributionUrl .
TmTron
J'ai également rencontré le même problème avec l'erreur ci- Cause: The version of Gradle you are using (3.3) does not support the forTasks() method on BuildActionExecuter. Support for this is available in Gradle 3.5 and all later versions. dessous.J'ai donc mis à jour le fichier gradle-wrapper.properties pourdistributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip
ViramP
1
Merci pour votre avertissement, @TmTron, c'était mon problème. falico, si cela ne vous dérange pas, je pense qu'il serait utile de souligner le commentaire de TmTron dans votre réponse ci-dessus.
BareMetalCoder
64

Changement dans le fichier "gradle-wrapper.properties".

Mettez cette ligne et Sync Project-

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

Cela fonctionnera. Pour vérifier la dernière version services.gradle.org/distributions

Après avoir changé, synchroniser le projet, nettoyer et reconstruire le projet une fois dans le menu Générer .

Kailas Bhakade
la source
4
Vérifiez services.gradle.org/distributions avant de passer à une version spécifique, car vous pouvez simplement mettre à jour la version vers la dernière version actuellement disponible. Lorsque ce commentaire a été publié, la version actuelle est 4.0 (stable). Il est donc prudent de passer à distributionUrl=https\://services.gradle.org/distributions/g‌​radle-4.0-all.zip, car il est plus stable que la milestone-1version
HendraWD
Oui, vous avez raison, préférez toujours la version stable aux autres. Mais vous pouvez toujours l'utiliser. @HendraWD Merci pour votre commentaire.
Kailas Bhakade
Mise à jour d'Android Studio de 2.3 à 3.0, consultez les directives officielles de
consultez
28

Cela s'est produit lors de la tentative de compilation de debug apk.

SOLUTION: mettez à jour la version Gradle vers 3.5

Accédez à Fichier -> Structure du projet -> Projet -> Version Gradle = 3.5

Cela fonctionne pour Android Studio 3.0

c'est l'image du menu où il faut faire le changement

Paixols
la source
C'est la solution pour ceux qui, intentionnellement, ne veulent pas passer à la gradle 4.
ram
Ce n'est pas le cas. Il passe à Gradle version 3.5, le minimum pour la fonctionnalité qu'il souhaite utiliser.
Quinton M.
14

Veuillez suivre les étapes ci-dessous:

  1. Ouvrez votre projet dans Android Studio
  2. Dans le menu Android, ouvrez gradle-wrapper.properties
  3. Modifiez la ligne d'URL de distribution avec la ligne ci-dessous

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

  1. C'est tout. Construisez votre projet maintenant.

Une capture d'écran est jointe pour plus de compréhension. entrez la description de l'image ici

Naveed Ahmad
la source
Erreur: impossible de créer le répertoire parent pour le fichier de verrouillage C: \ Users \ Kaveesh \ .gradle \ wrapper \ dists \ gradle-4.1-all \ bzyivzo6n839fup2jbap0tjew \ gradle-4.1-all.zip.lck
Kaveesh Kanwal
Il montre le problème de verrouillage. android studio ne parvient pas à créer le répertoire.
Naveed Ahmad
5

J'ai résolu le problème par changinf distributionUrl dans le code suivant dans le fichier gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
Saurabh Singh
la source
2

Ajoutez-les une fois avec Gradle de niveau supérieur

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

    repositories {
        maven { url 'https://maven.google.com' }
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-alpha9'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url 'https://maven.google.com' }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
ViramP
la source
1

Nous avons deux façons de gérer cela.

  1. Vous pouvez mettre à jour la version de votre gradle de la première à la version 3.5 du produit;

  2. Ou, vous pouvez comprendre votre wrapper gradle vers la version 4.1.

Tous les moyens sont utiles.

Benchur Wong
la source
0
  1. Ouvrez gradle-wrapper.properties
  2. Remplacer:

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

Avec:

distributionUrl=https://services.gradle.org/distributions/gradle-4.1-all.zip
  1. Maintenant synchroniser le projet

Cliquez ici pour en savoir plus

Wajid Khan
la source
0

mettez ce code dans le fichier gradle-wrapper.properties et il fonctionnera avec vous

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
Ahmed Mohamed
la source