wake-up-neo.com

Hauptklasse org.gradle.wrapper.GradleWrapperMain konnte nicht gefunden oder geladen werden

Ich habe das gesamte Projekt gesäubert, indem ich lokale Verzeichnisse wie ~/.gradle, ~/.m2~./Android und ~/workspace/project/.gradle löschte und File -> Invalidate Caches / Restart... in Android Studio..__ wählte. Jetzt führt die Ausführung des Befehls ./gradlew zur folgenden Ausgabe:

usr$ ./gradlew tasks
Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain

Unnötig zu sagen, dass ich zu viel gelöscht habe. Die Frage ist, wie es wieder repariert werden kann. Haben Sie Ideen, wie Sie das beheben können? 

103
SePröbläm

gradlew ist das ausführbare Batch-Skript des gradle-Wrappers unter Windows und das Shell-Skript an anderer Stelle. Wenn Sie die folgenden Zeilen in Ihren build.gradle einfügen, 

task wrapper(type: Wrapper) {
    gradleVersion = '2.0'
}

ihren Quellordnern wird ein Gradle-Wrapper-Skript hinzugefügt. Wenn das Wrapper-Skript aufgerufen wird, lädt es die definierte Gradle-Version herunter und führt sie aus. Wenn Sie den Wrapper mit Ihrem Projekt verteilen, kann jeder damit arbeiten, ohne vorher Gradle installieren zu müssen. Besser noch, Benutzer des Builds verwenden garantiert die Version von Gradle, mit der das Build entwickelt wurde.

In Ihren Löschvorgängen haben Sie etwas gelöscht, von dem gradlew abhängt. Sie können entweder nur die gradlew-Dateien aus Ihrem Quell-Repo holen oder wenn Sie gradle installiert haben, führen Sie gradle wrapper aus, um sie wiederherzustellen.

ref: Gradle Wrapper

78
RaGe

Neben der Antwort von @ RaGe könnte es sich um die Situation handeln, in der ich einen globalen git ignore hatte, der .jar-Dateien ignorierte, und so wurde der Gradle-Wrapper-Jar niemals festgeschrieben. Daher erhielt ich diesen Fehler auf dem Jenkins-Server nach einem versuchten /var/lib/jenkins/my_project/gradlew build. Ich musste das Hinzufügen des Glases explizit erzwingen und dann festlegen:

git add -f gradle/wrapper/gradle-wrapper.jar
147
HankCa

In meinem Fall war es ein globaler .gitignore, , wie in @HankCas Antwort 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 meinen globalen .gitignore aufzunehmen:

*.jar
!gradle/wrapper/gradle-wrapper.jar

Dies ist für mich nützlich, da ich viele Projekte mit Gradle habe. Git wird mich jetzt daran erinnern, das Wrapper-Glas einzuschließen.

Diese Überschreibung funktioniert solange, bis keine Verzeichnisse oberhalb von gradle-wrapper.jar (wie gradle und wrapper) ignoriert werden - git wird aus Leistungsgründen nicht in ignorierte Verzeichnisse absteigen .

25
Alex Palmer

In meinem Fall habe ich ausgelassen wrapper Unterordner beim Kopieren gradle Ordner und bekam den gleichen Fehler.

Hauptklasse org.gradle.wrapper.GradleWrapperMain konnte nicht gefunden oder geladen werden

stellen Sie sicher, dass Sie die richtige Ordnerstruktur haben, wenn Sie Wrapper von einem anderen Speicherort kopieren.

 ├── Build.gradle 
 ├── Gradle 
 │ Wrapper 
 │ Gradle-Wrapper.jar 
 │ └── gradle-wrapper.properties 
 ├── gradlew 
 ├── gradlew.bat 
 └── settings.gradle 
15
yantaq

Was für mich funktioniert hat, ist zuerst zu laufen:

 gradle wrapper

Nach erfolgreichem Build konnte ich laufen 

./gradlew assembleRelease

Quelle und Dank: http://gradle.org/docs/current/userguide/gradle_wrapper.html und https://stackoverflow.com/users/745574/rage

10
niklasingvar

sie können auch die gradlew.bat in Ihren Root-Ordner kopieren und den gradlew-wrapper in den gradlew-Ordner kopieren.

das ist Arbeit für mich.

4
Guy

In Ihrem Projekt fehlt wahrscheinlich die gradle-wrapper.jar-Datei unter dem Verzeichnis gradle/wrapper.

Sie müssen diese Datei über dieses Skript in der build.gradle-Datei wie folgt generieren:

task wrapper(type: Wrapper) {
   gradleVersion = '2.0' // version required
}

und Task ausführen:

gradle wrapper

Mit Gradle 2.4 (oder höher) können Sie einen Wrapper einrichten, ohne eine spezielle Aufgabe hinzuzufügen:

gradle wrapper --gradle-version 2.3

OR

gradle wrapper --gradle-distribution-url https://myEnterpriseRepository:7070/gradle/distributions/gradle-2.3-bin.Zip

Alle Details sind zu finden dieser Link

4
Luna Kong

In meinem Fall (unter Windows 10) hat gradlew.bat die folgenden Codezeilen:

set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%

Die APP_HOME-Variable ist im Wesentlichen ein Stammordner für das Projekt. Wenn dies auf irgendeine Weise durcheinander gebracht wird, erhalten Sie Folgendes:

Fehler: Die Hauptklasse konnte nicht gefunden oder geladen werden org.gradle.wrapper.GradleWrapperMain

Für mich war das durcheinander geraten, weil meine Projektordnerstruktur ein kaufmännisches Und (&) enthielt. ZB C:\Test & Dev\MyProject

Gradel hat also versucht, die Datei gradle-wrapper.jar in einem Stammordner von C:\Test zu finden (alles nach und einschließlich '&' entfernen)

Ich habe dies gefunden, indem ich die folgende Zeile unterhalb der Zeile APP_HOME =% DIRNAME% oben eingefügt habe. Dann lief die Bat-Datei, um das Ergebnis zu sehen.

echo "%APP_HOME%"

Es gibt einige andere "Sonderzeichen", die einen Pfad/ein Verzeichnis beschädigen könnten.

3
Neil Watson

Auf Gradle 5.x verwende ich:

wrapper {
    gradleVersion = '5.5.1'
}

Ich habe dieses Problem mit dem nächsten Fix behoben (vielleicht hilft es jemandem):

Prüfen Sie einfach, ob die übergeordneten Ordner Ihres Projektordners Namen mit Leerzeichen oder anderen verbotenen Zeichen haben. Wenn ja, entferne es.

"C:\Users\someuser\Test Projects\testProj" - In diesem Fall sollte "Test Projects" "TestProjects" sein.

1
Ihor Khomiak

In meinem Fall wurde gradle-wrapper.jar beschädigt, nachdem ein paar Dateien ersetzt wurden. Durch die Wiederherstellung des ursprünglichen Problems wurde das Problem behoben.

1
NeeK

Ich folgte den Antworten von oben, als ich darauf stieß. Wenn Sie dieses Problem haben, stellen Sie sicher, dass Sie Push sowohl jar- als auch Eigenschaftendateien erzwingen. Nach diesen beiden habe ich diese Ausgabe nicht mehr erhalten.

git add -f gradle/wrapper/gradle-wrapper.jar
git add -f gradle/wrapper/gradle-wrapper.properties
1
Jose Peralez

@HankCa hat das Problem auch in meinem Fall gelöst. Ich entschied mich dazu, meine gefährlichen **/*.jar-ignoriert in selbsterklärende wie src/**/lib/*.jar zu ändern, um solche Probleme in Zukunft zu vermeiden. Das Ignorieren mit **/* ist zumindest für mich etwas zu gefährlich. Es ist immer eine gute Idee, die Idee hinter einer .gitignore-Reihe zu bekommen, indem man sie nur anschaut.

1
user6408185

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:

git lfs install

Und ein frischer Klon hat es geschafft. Ich nehme an, git lfs pull oder nur ein git pull hätte ebenfalls helfen können, aber die Person mit dem Problem entschied sich, stattdessen einen neuen Klon zu erstellen.

0
cb2

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

0
vineet

In meinem Fall hatte ich gradlew- und gradle-Ordner aus dem Projekt entfernt Reran-Build-Aufgaben über "Runle Task" aus dem Gradle-Projektfenster in intellij ausführen 

 enter image description here

0
Saurabh

Für Gradle Version 5+ löste dieser Befehl mein Problem:

gradle Wrapper

https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:adding_wrapper

0
Raymond Chenon