gradlew: Erlaubnis verweigert


286

Ich versuche, gradlew über meine Befehlszeile auszuführen, stelle jedoch ständig den folgenden Fehler fest.

Brendas-MacBook-Pro:appx_android brendalogy$ ./gradlew compileDebug --stacktrace
-bash: ./gradlew: Permission denied

Ich führe diesen Befehl bereits in meinem Projektverzeichnis aus. Sie müssen diesen Befehl ausführen, da auf Android Studio 0.2.x derselbe (nicht beschreibende) Fehler auftritt wie hier: Fehler beim Erstellen von Android Studio und Gradle

Mache ich etwas falsch und wie komme ich darum herum?

Antworten:


817

Versuchen Sie, das Ausführungsflag für Ihre Gradlew-Datei zu setzen:

chmod +x gradlew


4
Du meinst, chmod + x gradlew? (: Es hat funktioniert. Bitte bearbeiten Sie Ihre Antwort, damit ich sie als akzeptiert markieren kann. Danke!
Brenda Nicole Tan

28
Gibt es einen Grund, warum die Standardvorlage gradlew nicht bereits als ausführbar festlegt? es scheint seltsam, dass ich das tun müsste.
Ankur

3
Ich hatte ein ähnliches Problem beim Einrichten des Atlassian Bamboo Builds. Beim Auschecken der gradlew-Datei aus git hatte sie nicht das ausführbare Attribut und musste meinem Job eine "Skript" -Aufgabe zu chmod + x hinzufügen, wie @Vincent hervorhob. Vielen Dank!
Doug Ayers

@ Vincent könnten Sie bitte erläutern, warum dies erforderlich ist, um das Berechtigungsproblem zu beheben?
Abhijit

4
@Abhijit Sie können die Dateiberechtigungen überprüfen, indem Sie dies tun ls -l. Dadurch erhalten Sie die Dateiberechtigungen in der Spalte ganz links.
Sudhanshu

57

Könnte auch mit behoben werden

git update-index --chmod=+x gradlew

1
Genau das, wonach ich gesucht habe!
Sschrass

1
richtige Lösung für Windows-Benutzer. Danke dir!
GBP

5
... und Commit und Push sind danach erforderlich
Michal Hosala

33

Sie können "bash" vor dem Befehl verwenden:

bash ./gradlew compileDebug --stacktrace

27

Sie müssen die Ausführungsberechtigung für aktualisieren gradlew

Vor Ort :chmod +x gradlew

Git :

git update-index --chmod=+x gradlew
git add .
git commit -m "Changing permission of gradlew"
git push

Das solltest du sehen:

mode change 100644 => 100755 gradlew

Danke, hat mir sehr geholfen!
Igor Fridman

26

Jenkins> Projekt-Dashboard> (Gradle-Projekt auswählen) Konfigurieren> Erstellen

x Verwenden Sie Gradle Wrapper

Gradlew ausführbar machen x

Geben Sie hier die Bildbeschreibung ein


Funktioniert es für dich? Ich habe das Kontrollkästchen in den Einstellungen meines Jobs aktiviert, aber es hat nicht dazu geführt, dass gradlew ausführbar gemacht wurde. Ich benutze clean before checkoutOption.
zubactik

1
Funktioniert bei mir! Sie müssen Jenkins explizit anweisen, die ausführbare Datei zu erstellen.
Harvey Lin

16

git update-index --chmod = + x gradlew

Dieser Befehl funktioniert insbesondere auf Nicht-Unix-Systemen besser.


2

Geben Sie dies einfach commandin Android Studio Terminal (oder Ihr Linux / Mac Terminal) ein.

chmod +x gradlew

und versuchen:

 ./gradlew assembleDebug

Geben Sie hier die Bildbeschreibung ein


1

Wenn es nach chmod'ing nicht funktioniert, stellen Sie sicher, dass Sie nicht versuchen, es im Verzeichnis / tmp auszuführen.


1

In meinem Fall hatte ich Berechtigungen ausgeführt und konnte nicht einmal mit sudo gradlew ausführen. Mein Problem war, dass sich mein Projekt auf einer anderen Festplatte befand und ich keine Ausführungsberechtigung für diese Festplatte hatte. Ich habe einfach das noexec-Mount-Flag von fstab entfernt und das exec-Flag hinzugefügt. Stellen Sie dann die Festplatte erneut bereit, damit die Änderungen übernommen werden.


0

Versuchen Sie den folgenden Befehl:

chmod +x gradlew && ./gradlew compileDebug --stacktrace

0

Beim Versuch, einen Flatterlauf auf einem Mac auszuführen, ist der gleiche Fehler aufgetreten. Anscheinend gibt es in Ihrem Flatterprojekt eine Datei android / gradlew, von der erwartet wird, dass sie ausführbar ist (und das war es nicht). Also in meinem Fall,

chmod a+rx android/gradlew

Ich habe diesen Befehl verwendet und das Projekt ausgeführt


0

Dieser Fehler hängt mit der Gradle-Berechtigung zusammen. Fügen Sie einfach die folgende Zeile in Ihr Terminal ein und führen Sie ...

chmod a + rx android / gradlew


0

auf Android Ordner cmd ausführen

chmod +x gradlew

und Renn

./gradlew clean

und Root-Projekt ausführen

react-native run-android
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.