spawnSync ./gradlew EACCES-Fehler beim Ausführen des reaktiven nativen Projekts auf dem Emulator udara


73

Ich versuche, React-Native Run-Android zu verwenden, um meine React-Native-Anwendung auf einem Android Studio-Emulator zu installieren. Ich habe mit abd-Geräten überprüft, ob der Emulator verfügbar ist, und ich habe npm-install ausgeführt.

Ich verwende Ubuntu 18.04 mit der neuesten Version von Android Studio und der neuesten Pixel 2 XL API 28.

Ich erhalte folgende Fehlermeldung:

spawnSync ./gradlew EACCES

Error: spawnSync ./gradlew EACCES
    at Object.spawnSync (internal/child_process.js:998:20)
    at spawnSync (child_process.js:622:24)
    at Object.execFileSync (child_process.js:650:13)
    at runOnAllDevices (/home/user/react/front-end/project/node_modules    /react-native/local-cli/runAndroid/runAndroid.js:299:19)
    at buildAndRun (/home/user/react/front-end/project/node_modules/react-native/local-cli/runAndroid/runAndroid.js:135:12)
    at isPackagerRunning.then.result (/home/user/react/front-end/project/node_modules/react-native/local-cli/runAndroid/runAndroid.js:65:12)
    at processTicksAndRejections (internal/process/next_tick.js:81:5)

Ich habe mehrmals versucht, meinen PC und den Emulator neu zu starten. Irgendwelche Ideen?

UPDATE: Ich habe JDK, npm, react-native-cli und android studio neu installiert. Es gibt mir immer noch genau den gleichen Fehler. Bitte helfen Sie.


Haben Sie versucht, die Anzahl Ihrer inotify-Beobachter zu erhöhen? github.com/guard/listen/wiki/…
Andrew

@ Andrew Versuchte es jetzt. Es hat nichts getan :(
dudeperryfect

Antworten:


294

Ich habe dieses Problem behoben mit:

chmod 755 android/gradlew 

Der Befehl chmod legt die Berechtigungen für Dateien oder Verzeichnisse fest. https://www.computerhope.com/unix/uchmod.htm


2
Das Problem wurde erfolgreich behoben. Aber es wäre schön, wenn Sie erklären, was es tut. Wäre für viele Leute nützlich gewesen, denke ich.
AL-Zami

3
@ Grez.Kev Dieser Befehl macht gradlew-Dateien ausführbar. Welcher Hilfecode soll einen Lauf geben. Diese Lösung spart meine Stunden. Danke
Chander Shakher Ghorela - Guru

Mein rechter relativer Pfad ist Plattformen / Android / Gradlew und es funktioniert
A. D'Alfonso

2
Ich habe kein gradlew-Verzeichnis unter meinem Android-Verzeichnis. Was soll ich tun?
JollyRoger

was zum Teufel?! Du hast mein Leben gerettet ... hätte nie darüber nachgedacht
Blue Bot

37

Ich denke, es ist ein Berechtigungsproblem, mit dem ich zuvor konfrontiert war. Sie können es beheben, indem Sie die Berechtigung ändern und den folgenden Befehl ausführen

chmod 755 android/gradlew

10

Ich habe die obige Lösung ausprobiert. In meinem Fall musste ich sudo wegen des Berechtigungsproblems verwenden. Sie können das Problem beheben, indem Sie den Befehl ausführen

sudo chmod 755 android/gradlew


1
Können Sie erklären, warum Sie nicht den gleichen Pfad wie in den anderen Antworten verwenden?
Nico Haase

0

Ich denke, es ist ein Berechtigungsproblem, mit dem ich zuvor konfrontiert war. Sie können es beheben, indem Sie die Berechtigung ändern und den folgenden Befehl ausführen

chmod 755 android/gradlew


0

das habe ich getan

sudo chmod -R 777 <project directory> 

Beispiel

sudo chmod -R 777 ./sampelapp

1
chmod 777ist so ziemlich nie die richtige Antwort auf irgendetwas.
Wodin
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.