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?

Brenda Nicole Tan
quelle

Antworten:

817

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

chmod +x gradlew

Vincent Cantin
quelle
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
user1921819
quelle
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
user3816061
quelle
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
Vishrant
quelle
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

Pnemonisch
quelle
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.

ekarankow
quelle
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

Sana Ebadi
quelle
1

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

Quinn Carver
quelle
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.

mh. Bitarafan
quelle
0

Versuchen Sie den folgenden Befehl:

chmod +x gradlew && ./gradlew compileDebug --stacktrace
Brijesh Shiroya
quelle
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

Shubham_Narkhede
quelle
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

Gaurav Pandit
quelle
0

auf Android Ordner cmd ausführen

chmod +x gradlew

und Renn

./gradlew clean

und Root-Projekt ausführen

react-native run-android
Iman Roosta
quelle