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.

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

Jinkey
quelle
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
Omar Al-Howeiti
quelle
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

Lakshan Mamalgaha
quelle
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

Wahyu Setiawan
quelle
0

das habe ich getan

sudo chmod -R 777 <project directory> 

Beispiel

sudo chmod -R 777 ./sampelapp
Sabiq Thottoly
quelle
1
chmod 777ist so ziemlich nie die richtige Antwort auf irgendetwas.
Wodin