Ich reinigte das ganze Projekt durch lokale Verzeichnisse wie Löschen ~/.gradle
, ~/.m2
~./android
und ~/workspace/project/.gradle
und chosing File -> Invalidate Caches / Restart...
in Android Studio. Die Ausführung des Befehls ./gradlew
führt nun zu folgender Ausgabe:
usr$ ./gradlew tasks
Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain
Unnötig zu sagen, ich habe zu viel gelöscht, die Frage ist, wie kann es wieder repariert werden? Haben Sie Ideen, wie Sie dies beheben können?
android-studio
gradle
android-gradle-plugin
gradlew
SePröbläm
quelle
quelle
gradle wrapper
den fehlenden Code neu zu generieren. Dies setzt voraus, dass Sie kein Setup für die Quellcodeverwaltung haben.Antworten:
Ihr Gradle-Wrapper fehlt, ist kaputt oder beschädigt.
Was ist Gradle Wrapper? Ist
gradlew
der Gradle Wrapper ausführbar? Batch-Skript unter Windows und Shell-Skript an anderer Stelle. Das Wrapper-Skript lädt beim Aufrufen die definierte Gradle-Version herunter und führt sie aus. Durch die Verteilung des Wrappers mit Ihrem Projekt kann jeder damit arbeiten, ohne zuvor Gradle installieren zu müssen. Noch besser ist, dass Benutzer des Builds garantiert die Version von Gradle verwenden, für die der Build entwickelt wurde.Wiederherstellen des Gradle-Wrappers:
Früher mussten Sie
wrapper
Ihrem build.gradle eine Aufgabe hinzufügen, um den Gradle-Wrapper und alle seine Abhängigkeiten wiederherzustellen. Zum Beispiel:Neuere Versionen von gradle erfordern dies nicht. Es ist jetzt eine eingebaute Aufgabe. Renn einfach:
Sie können auch zusätzliche Flags angeben, um Versionen usw. Anzugeben
Wenn Sie diese Aufgabe ausführen, werden ein Gradle-Wrapper-Skript und die erforderlichen JAR-Dateien zu Ihren Quellordnern hinzugefügt. Eigenschaften werden in gradle / wrapper / gradle-wrapper.properties gespeichert
(Möglicherweise müssen Sie gradle lokal installieren, um dies auszuführen.
brew install gradle
Zum Beispiel auf einem Mac. Weitere Anweisungen finden Sie hier. )Warum fehlte es überhaupt?
OP scheint etwas gelöscht zu haben, von dem Gradle Wrapper abhängt.
Ein häufiger Grund ist jedoch, dass ein .gitignore-Eintrag verhindert, dass Wrapper-Jars in git eingecheckt werden. Beachten Sie, dass sich der gültige Gitignore möglicherweise im Quellordner oder global im Benutzerordner oder in der globalen Git-Konfiguration befindet. Es ist üblich, einen
*.jar
Eintrag in .gitignore zu haben.Sie können eine Ausnahme für die JAR-Dateien von gradlew in .gitignore hinzufügen
oder zwingen Sie das Wrapper Glas in Git hinzufügen
Ref: Gradle Wrapper
quelle
Zusätzlich zu @ RaGes Antwort könnte die Situation sein, in der ich ein globales Git-Ignorieren hatte, das
.jar
Dateien ignorierte und daher das Gradle-Wrapper-Glas nie festgeschrieben wurde. Daher habe ich diesen Fehler nach einem Versuch auf dem Jenkins-Server erhalten/var/lib/jenkins/my_project/gradlew build
. Ich musste explizit ein Hinzufügen des Glases erzwingen und dann festlegen:quelle
Was für mich funktioniert hat, ist zuerst zu laufen:
Nach erfolgreichem Build konnte ich laufen
Quelle und Dank: http://gradle.org/docs/current/userguide/gradle_wrapper.html und https://stackoverflow.com/users/745574/rage
quelle
Gradle->ProjectName->ProjectName->Tasks->build setup->wrapper
In meinem Fall war es global
.gitignore
, wie in der Antwort von @ HankCa erläutert .Anstatt das Glas zwangsweise hinzuzufügen, was Sie in jedem Gradle-Projekt beachten müssen, habe ich eine Überschreibung hinzugefügt, um das Wrapper-Glas wieder in mein globales Element aufzunehmen
.gitignore
:Dies ist nützlich für mich, da ich viele Projekte habe, die Gradle verwenden. Git wird mich jetzt daran erinnern, das Wrapper-Glas einzuschließen.
Diese Überschreibung funktioniert, solange keine der oben genannten Verzeichnisse
gradle-wrapper.jar
(wie z. B.gradle
undwrapper
) ignoriert werden. Git wird aus Leistungsgründen nicht in ignorierte Verzeichnisse verschoben .quelle
In meinem Fall habe ich wrapperbeim Kopieren des gradleOrdners den Unterordner weggelassen und den gleichen Fehler erhalten.
Die Hauptklasse org.gradle.wrapper.GradleWrapperMain konnte nicht gefunden oder geladen werden
Stellen Sie sicher, dass Sie die richtige Ordnerstruktur haben, wenn Sie den Wrapper von einem anderen Speicherort kopieren.
quelle
gradle wrapper
Sie genau das gleiche Ergebnis;)Wahrscheinlich fehlt Ihnen die
gradle-wrapper.jar
Datei unter dem Verzeichnisgradle/wrapper
in Ihrem Projekt.Sie müssen diese Datei über dieses Skript in der Datei build.gradle wie folgt generieren:
und Aufgabe ausführen:
Mit Gradle 2.4 (oder höher) können Sie einen Wrapper einrichten, ohne eine spezielle Aufgabe hinzuzufügen:
ODER
Alle Details finden Sie unter diesem Link
quelle
gradle/wrapper
dir. Dies kann behoben werden,gralde wrapper
indem Sie das wie angegeben ausführen.Gradle->ProjectName->ProjectName->Tasks->build setup->wrapper
Sie können auch gradlew.bat in Ihren Stammordner kopieren und den gradlew-wrapper in den gradlew-Ordner kopieren.
Das ist Arbeit für mich.
quelle
Ich folgte den Antworten von oben, als ich darauf stieß. Und wenn Sie dieses Problem haben, stellen Sie sicher, dass Sie das Drücken von JAR- und Eigenschaftendateien erzwingen. Nach diesen beiden bekam ich dieses Problem nicht mehr.
quelle
In meinem Fall (unter Windows 10) enthält gradlew.bat die folgenden Codezeilen:
Die Variable APP_HOME ist im Wesentlichen ein gradles-Stammordner für das Projekt. Wenn dies also auf irgendeine Weise durcheinander gebracht wird, erhalten Sie Folgendes:
Für mich war dies durcheinander, weil meine Projektordnerstruktur ein kaufmännisches Und (&) enthielt. ZB C: \ Test & Dev \ MyProject
Also versuchte gradel, die Datei gradle-wrapper.jar in einem Stammordner von C: \ Test zu finden (alles nach und einschließlich des '&' entfernen)
Ich fand dies, indem ich die folgende Zeile unter der darüber liegenden Zeile APP_HOME =% DIRNAME% hinzufügte. Führen Sie dann die Fledermausdatei aus, um das Ergebnis anzuzeigen.
Es wird einige andere 'Sonderzeichen' geben, die einen Pfad / ein Verzeichnis beschädigen könnten.
quelle
Ich habe den gleichen Fehler gesehen, aber in meinem Fall war es eine neue Git-Installation ohne installiertes LFS. Das betreffende Repo wurde mit LFS eingerichtet und die Datei gradle-wrapper.jar befand sich in LFS, sodass sie nur einen Zeiger auf den LFS-Server enthielt. Die Lösung war einfach, führen Sie einfach aus:
Und ein frischer Klon hat es geschafft. Ich nehme an,
git lfs pull
oder nur eingit pull
hätte auch helfen können, aber die Person mit dem Problem hat beschlossen, stattdessen einen neuen Klon zu erstellen.quelle
@HankCa hat das Problem auch in meinem Fall gelöst. Ich beschloss, meine gefährlichen
**/*.jar
Ignoranten in selbsterklärende zu ändernsrc/**/lib/*.jar
, um solche Probleme in Zukunft zu vermeiden. Ignorierungen, die mit ** / * beginnen, sind zumindest für mich etwas zu gefährlich. Und es ist immer eine gute Idee, die Idee hinter eine .gitignore-Reihe zu bringen, indem man sie sich nur ansieht.quelle
In meinem Fall wurde gradle-wrapper.jar beschädigt, nachdem eine Reihe von Dateien ersetzt wurden. Das Zurücksetzen auf das Original löste das Problem.
quelle
Ich habe dieses Problem mit dem nächsten Fix behoben (vielleicht hilft es jemandem):
Überprüfen Sie einfach, ob die übergeordneten Ordner Ihres Projektordners Namen mit Leerzeichen oder anderen verbotenen Zeichen enthalten. Wenn ja - entfernen Sie es.
"C: \ Users \ someuser \ Test Projects \ testProj" - in diesem Fall sollte "Test Projects" "TestProjects" sein.
quelle
Auf Gradle 5.x verwende ich:
quelle
In meinem Fall hatte ich gradlew und gradle Ordner aus dem Projekt entfernt. Führen Sie saubere Build-Aufgaben über "Gradle-Aufgabe ausführen" im Gradle-Projektfenster in Intellij erneut aus
quelle
Für Gradle Version 5+ löste dieser Befehl mein Problem:
https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:adding_wrapper
quelle
Wenn es sich um ein neues Projekt handelt, entfernen Sie den vorhandenen Ordner und führen Sie $ npm install -g react-native-cli aus
Überprüfen Sie, ob der Vorgang fehlerfrei ausgeführt wird
quelle