web-dev-qa-db-fra.com

Echec de la construction de Gradle après la mise à jour vers la version 3.0

J'ai récemment mis à jour la version de mon projet de la version 2.14.1 à la version 3.0. Depuis lors, la construction de gradle échoue à chaque fois avec cette erreur: 

Erreur: Cause: org.gradle.api.internal.tasks.DefaultTaskInputs $ TaskInputUnionFileCollection ne peut pas être converti en org.gradle.api.internal.file.collections.DefaultConfigurableFileCollection Les causes possibles de cette erreur inattendue sont les suivantes:

  • Le cache de dépendance de Gradle peut être corrompu (cela se produit parfois après un délai de connexion réseau.) Re-télécharger les dépendances et le projet de synchronisation (réseau requis)
  • L'état d'un processus de génération Gradle (démon) est peut-être corrompu. Arrêter tous les démons Gradle peut résoudre ce problème . Arrêter les processus de construction Gradle (nécessite un redémarrage)
  • Votre projet utilise peut-être un plug-in tiers incompatible avec les autres plug-ins du projet ou la version de Gradle demandée par le projet.
Dans le cas de processus Gradle corrompus, vous pouvez également essayer de fermer le IDE, puis de supprimer tous les processus Java. 

J'ai cherché sur Google et trouvé des solutions comme this one mais rien ne fonctionne. Est-ce que quelqu'un sait comment résoudre ce problème?

66
Drilon Blakqori

Mettez à niveau vos outils de génération de versions à la dernière version.

Une façon simple de faire cela consiste à ajouter la dernière version des outils de génération en tant que dépendance dans votre fichier build.gradle, par exemple:

dependencies {
    classpath 'com.Android.tools.build:gradle:2.2.0-beta1'
}

Vous pouvez ensuite exécuter gradle tasks et gradle téléchargera tout ce dont vous avez besoin.

Après la version stable d'Android Studio 2.2 publiée le 19 septembre 2016, la dernière version des outils de génération est la 2.2.0. Donc, vous pouvez le réparer en:

dependencies {
    classpath 'com.Android.tools.build:gradle:2.2.0'
}

Android Studio 2.4 stable n'étant pas encore prêt à être publié (4 mai 2017), la dernière version stable des outils de génération est la 2.3.1.

dependencies {
    classpath 'com.Android.tools.build:gradle:2.3.1'
}

Si vous mettez à jour cette version des outils de génération vers 2.3. *, Vous devez également mettre à jour la version de wrapper Gradle vers 3.3 dans le fichier /yourProjectRoot/gradle/wrapper/gradle-wrapper.properties. (Je sais que cela ne correspond pas à la question Gradle build failing after update to 3.0, mais je vous suggère fortement d'utiliser le dernier outil de compilation recommandé par Google.)

BTW: la version 2.3.1 de l'outil de construction n'existe que sur jCenter, pas MavenCentral, donc si vous rencontrez l'erreur ci-dessous lors de l'exécution de la ligne de commande gradlew dans le terminal 

Could not find com.Android.tools.build:gradle:2.3.1.
 Searched in the following locations:
     https://repo1.maven.org/maven2/com/Android/tools/build/gradle/2.3.1/gradle-2.3.1.pom
     https://repo1.maven.org/maven2/com/Android/tools/build/gradle/2.3.1/gradle-2.3.1.jar

il suffit de remplacer mavenCentral () par jcenter () comme 

 repositories {
    jcenter()
    //mavenCentral()
}
79
ending0421

Pour la dernière mise à jour d'Android Studio 3.0

Dans gradle-wrapper.properties (Nom du fichier), remplacez l'URL de distributionUrl par la suivante:

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

25
Dhaval Jardosh

Si vous utilisez le plugin Gradle 2.1.3, .__, il est simple à résoudre:

mettre à jour votre plugin Gradle vers la version 2.2.0-beta1

Notes: ceci est une version beta, peut-être que vous pouvez avoir d'autres problèmes.

https://discuss.gradle.org/t/classcastexception-in-gradle-nightly-3-0-20160609/17979

Bonne codage :)

8
Leekwok Hsiang

Ok je l'ai fait travailler. Pour ceux qui font face au même problème, voici comment cela a fonctionné: 

  1. Allez dans votre dossier externe .gradle (pour moi c’était C:\Users\drilon.gradle). Dans les caches et le dossier démon, supprimez tous les dossiers de la version (ils ressemblent à ceci "2.14.1" ou "3.0"). Allez aussi dans wrapper -> dists -> supprimez tout ce qui se trouve là.
  2. À la racine de votre projet (C:\Users\drilon\AndroidStudioProjects\PorjectName pour moi), accédez au dossier .gradle et supprimez-le. 
  3. Reconstruire le projet 

MODIFIER:
Il s'avère que cette solution remettait la version de gradle à 2.14.1. La solution de ending0421 est celle qui fonctionne.

4
Drilon Blakqori

si votre version est: 3.0.1, utilisez le code ci-dessous dans votre fichier gradle-wrapper.properties distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.Zip.

si 3.1.2, utilisez le code ci-dessous dans votre fichier gradle-wrapper.properties distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.Zip

2
prasad reddy
    After 1 hour R&D Not Solution as worked for me...

    But still i have solution follow this its work 100

    step 1: upgrade your build.gradle(Project:<your project name>)
    Example :  classpath 'com.Android.tools.build:gradle:2.1.3' // old gradle file
               classpath 'com.Android.tools.build:gradle:2.3.1' // upgraded file 

                                OR
               classpath 'com.Android.tools.build:gradle:3.1.0'

    Step 2 : Upgrade compileSdkVersion buildToolsVersion 
    Example : compileSdkVersion 23    buildToolsVersion "23.0.3 // old api's
              compileSdkVersion 25    buildToolsVersion "25.0.2" // upgraded api's

   Step 3:  upgrade gradle-wrapper.properties 
   Example : distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.Zip // old or any version
            distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.Zip // new or any version

Étape 4: enfin allez construire> reconstruire le projet ...

Vous avez toujours un problème avec la validation ou la boîte de réception moi-même ....

...... Fin @Ambilpura

0

Supprimez simplement tout ce qui se trouve dans le dossier Gradle du dossier principal du projet et reconstruisez le projet Cela va commencer à fonctionner.

0
Sapna Panda

Pour la dernière mise à jour de Android Studio 3.3.1 code ci-dessous fonctionne.

1) gradle-wrapper.properties ajouter en dessous de la ligne.

distributionUrl = https: //services.gradle.org/distributions/gradle-4.6-all.Zip

2) build.gradle in niveau du projet add under classpath 

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

}
0
satyawan hajare

réponse simple essayez ceci ...

goto build.gradle (PROJECT) et vérifiez la version de gradle comme indiqué ci-dessous

'com.Android.tools.build:gradle:2.1.3' ou 3.0 ou 3.1 ou xx.xx

maintenant ouvert gradle-wrapper.properties voir cette ligne de code si la version de gradle est 2.x le code ci-dessous ...

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

gradle-2.14.1-all.Zip La ligne de code doit être identique à la version de Gradle 

exemple:

exemple: mien est 2.x donc ... chemin de classe 'com.Android.tools.build:gradle:2.1.3' dans build.gradle donc 

distributionUrl = https: //services.gradle.org/distributions/gradle-2.14.1-all.Zipin gradle-wrapper.properties.

si gradle version est 3.x, alors classpath 'com.Android.tools.build:gradle3.1.0' dans build.gradle alors 

distributionUrl = https: //services.gradle.org/distributions/gradle-3.14.1-all.Zipin gradle-wrapper.properties.

vérifiez que cela fonctionnera

0

si Android Studio Android Studio 3.0 ci-dessous fonctionne.

gradle-wrapper.properties ajoute en dessous de la ligne.

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

si Android Studio Android Studio 3.1.2 ci-dessous le code fonctionne.

distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.Zip

si Android Studio 3.3.1 ci-dessous le code fonctionne.

1) gradle-wrapper.properties ajoute en dessous de la ligne.

distributionUrl=https://services.gradle.org/distributions/gradle-4.6-all.Zip

2) build.gradle au niveau du projet ajouter ci-dessous 

 dependencies { 
             classpath 'com.Android.tools.build:gradle:3.1.0'
 }
0
satyawan hajare

Si votre gradle plugin 3.0.0 pour la version studio 3.0, ajoutez ceci dans gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.Zip
0
John Ruban Singh