Gradle-Build schlägt nach Aktualisierung auf 3.0 fehl


71

Ich habe kürzlich die Gradle-Version meines Projekts von 2.14.1 auf 3.0 aktualisiert. Seitdem schlägt der Gradle-Build jedes Mal mit diesem Fehler fehl:

Fehler: Ursache: org.gradle.api.internal.tasks.DefaultTaskInputs $ TaskInputUnionFileCollection kann nicht in org.gradle.api.internal.file.collections umgewandelt werden. DefaultConfigurableFileCollection Mögliche Ursachen für diesen unerwarteten Fehler sind:

  • Der Abhängigkeits-Cache von Gradle ist möglicherweise beschädigt (dies tritt manchmal nach einem Zeitlimit für die Netzwerkverbindung auf.) Laden Sie die Abhängigkeiten erneut herunter und synchronisieren Sie das Projekt (erfordert Netzwerk).
  • Der Status eines Gradle-Erstellungsprozesses (Daemon) ist möglicherweise beschädigt. Das Stoppen aller Gradle-Dämonen kann dieses Problem lösen. Stopple Gradle-Build-Prozesse (erfordert Neustart)
  • Ihr Projekt verwendet möglicherweise ein Plugin eines Drittanbieters, das nicht mit den anderen Plugins im Projekt oder der vom Projekt angeforderten Version von Gradle kompatibel ist.
Bei beschädigten Gradle-Prozessen können Sie auch versuchen, die IDE zu schließen und dann alle Java-Prozesse zu beenden.

Ich habe bei Google gesucht und einige Lösungen wie diese gefunden , aber nichts funktioniert. Weiß jemand, wie man es behebt?


Welche Version des Plugins verwenden Sie?
Gabriele Mariotti

1
Das neueste stabile Gradle-Plugin ( 2.1.3 ) funktioniert mit [Gradle 2.14.1 oder höher] [1], unterstützt jedoch Gradle 3.x nicht. [1]: developer.android.com/studio/releases/gradle-plugin.html
Gabriele Mariotti

2
es heißt Gradle 2.14.1 oder höher, was 3.x-Versionen nicht wirklich ausschließt?
Drilon Blakqori

Sie können versuchen, die neueste Beta-Version zu verwenden: 2.2.0-beta2, aber ich weiß nicht, ob sie unterstützt wird.
Gabriele Mariotti

Antworten:


81

Aktualisieren Sie Ihre Gradle-Build-Tools auf die neueste Version.

Eine einfache Möglichkeit, dies zu tun, besteht darin, die neueste Version der Build-Tools als Abhängigkeit in Ihre build.gradleDatei einzufügen. Beispiel:

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

Sie können dann ausführen gradle tasksund gradle lädt alles herunter, was Sie benötigen.

Nach der Veröffentlichung von Android Studio 2.2 Stable am 19. September 2016 ist die neueste Version der Build-Tools 2.2.0. So können Sie das Problem beheben, indem Sie:

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

Da Android Studio 2.4 Stable noch nicht zur Veröffentlichung bereit ist (4. Mai 2017), ist die neueste stabile Version der Build-Tools 2.3.1.

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

Wenn Sie diese Build-Tools-Version auf 2.3. * Aktualisieren, sollten Sie auch die Gradle-Wrapper-Version in der Datei /yourProjectRoot/gradle/wrapper/gradle-wrapper.properties auf 3.3 aktualisieren. (Ich weiß, es ist keine passende Frage Gradle build failing after update to 3.0, aber ich empfehle Ihnen dringend, das neueste Build-Tool zu verwenden, wie von Google empfohlen)

Übrigens: Version 2.3.1 des Build-Tools ist nur in jCenter vorhanden, nicht in MavenCentral. Wenn Sie also beim Ausführen der gradlew-Befehlszeile im Terminal unten auf einen Fehler stoßen

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

Ersetzen Sie einfach mavenCentral () durch jcenter () wie

 repositories {
    jcenter()
    //mavenCentral()
}

29

Für das neueste Update von Android Studio 3.0

gradle-wrapper.propertiesÄndern Sie in (Dateiname) die URL von distributionUrl:

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


1
Dies ist die beste Antwort.
Prinkal Kumar

1
Klappt wunderbar. Muss nur google()zusammen mit dem jcenter()Repository hinzugefügt werden
Rohit Sharma

1
Arbeiten für mich Danke (y)
InsaneCat

Perfekte Antwort. Vielen Dank
Shobhakar Tiwari

8

Wenn Sie das Gradle-Plugin 2.1.3 verwenden, ist es einfach zu lösen:

Aktualisieren Sie Ihr Gradle-Plugin auf Version 2.2.0-beta1

Hinweise: Dies ist eine Beta-Version. Möglicherweise können Sie andere Probleme bekommen.

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

Viel Spaß beim Codieren :)


4
Ich bin dabei, mich umzubringen. Danke für die Rettung meines Lebens.
Neon Warge

Was ist, wenn Sie 2.3.1 verwenden?
siehe

nvm -> Klassenpfad 'com.android.tools.build:gradle:3.0.0-alpha5'
siehe

4

Okay, ich habe es geschafft. Für alle, die mit dem gleichen Problem konfrontiert sind, funktioniert es wie folgt:

  1. Wechseln Sie in Ihren externen .gradle-Ordner (für mich war es C: \ Users \ drilon.gradle). In Caches und im Daemon-Ordner löschen Sie den gesamten Versionsordner (sie sehen wie folgt aus: "2.14.1" oder "3.0"). Gehen Sie auch zu Wrapper -> Dists -> löschen Sie dort alles.
  2. Gehen Sie in Ihrem Projektstamm (für mich war es C: \ Users \ drilon \ AndroidStudioProjects \ PorjectName) in den Ordner .gradle und löschen Sie dort alles.
  3. Erstellen Sie das Projekt neu

BEARBEITEN: Es stellte
sich heraus, dass diese Lösung die Gradle-Version auf 2.14.1 zurückgesetzt hat. Die Lösung von finish0421 ist die funktionierende.


Das hat bei mir nicht funktioniert. Ich musste die von LinuxArtisan bereitgestellte Lösung verwenden. (Upgrade auf com.android.tools.build:gradle:2.2.0-beta1)
cbeaudin

3

Für das neueste Update von Android Studio 3.3.1 unten Code Arbeit.

1) gradle-wrapper.properties unter der Zeile hinzufügen.

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

2) build.gradle auf Projektebene unter Klassenpfad hinzufügen

 dependencies
    {
        classpath 'com.android.tools.build:gradle:3.1.0'

    }

Nach dem Hinzufügen des obigen Codes funktioniert der Gradle-Synchronisierungscode wie ein Zauber.
Satyawan Hajare

1

Wenn Ihre Gradle-Version: 3.0.1 ist, verwenden Sie den folgenden Code in Ihren gradle-wrapper.properties distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

Wenn 3.1.2, verwenden Sie den folgenden Code in Ihren gradle-wrapper.properties distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip


1
    After 1 hour R&D No 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

Schritt 4: Endlich loslegen> Projekt neu erstellen ...

Trotzdem haben Sie Probleme beim Festschreiben oder Posteingang von mir ....

...... Beende @Ambilpura


1

Sie sollten Ihre Gradle Plugin-Version und Gradle-Version vor dem Update überprüfen .

Überprüfen Sie die Gradle Plugin-Version in Ihrer build.gradleDatei auf Projektebene.

buildscript {
    
    repositories {
        google()

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:gradle.plugin.version'
    }
}

Überprüfen Sie die Gradle-Version in Ihrem gradle-wrapper.properties-

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

Zum Zeitpunkt dieser Antwort waren unten die neuesten Versionen aufgeführt. Sie können Ihre Versionen auf dieser Seite abgleichen .

Gradleversion


0

Löschen Sie einfach alles im gradle-Ordner im Hauptprojektordner und erstellen Sie das Projekt neu. Es wird anfangen zu arbeiten.


0

Wenn Ihr Gradle-Plugin 3.0.0 für Studio Version 3.0 ist, fügen Sie dies in gradle-wrapper.properties hinzu

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

0

einfache Antwort versuchen Sie dies ...

Gehen Sie zu build.gradle (PROJECT) und überprüfen Sie die Gradle-Version wie unten gezeigt

'com.android.tools.build:gradle:2.1.3' oder 3.0 oder 3.1 oder xx.xx.

Öffnen Sie jetzt gradle-wrapper.properties. Sehen Sie sich diese Codezeile an, wenn die gradle-Version 2.x ist. Dies ist der folgende Code ...

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

Die Codezeile gradle-2.14.1-all.zip muss mit der Gradle-Version identisch sein

Beispiel:

Beispiel: meins ist 2.x so ... Klassenpfad 'com.android.tools.build:gradle:2.1.3' in build.gradle so

DistributionUrl = https: //services.gradle.org/distributions/gradle-2.14.1-all.zip in gradle-wrapper.properties.

Wenn die Gradle-Version 3.x ist, dann der Klassenpfad 'com.android.tools.build:gradle:3.1.0' in build.gradle

DistributionUrl = https: //services.gradle.org/distributions/gradle-3.14.1-all.zip in gradle-wrapper.properties.

Überprüfen Sie, ob es funktioniert


0

Wenn Android Studio Android Studio 3.0 unter Code funktioniert.

gradle-wrapper.properties unter der Zeile hinzufügen.

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

Wenn Android Studio Android Studio 3.1.2 unter Code funktioniert.

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

wenn Android Studio 3.3.1 unter Code funktioniert.

1) gradle-wrapper.properties unter der Zeile hinzufügen.

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

2) build.gradle auf Projektebene unten hinzufügen

 dependencies { 
             classpath 'com.android.tools.build:gradle:3.1.0'
 }
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.