120
votes

I am trying to use react-native run-android to install my react-native application on an android studio emulator. I have checked with abd-devices that the emulator is available, and I have ran npm-install.

I am using Ubuntu 18.04 with the latest version of android studio, and the latest Pixel 2 XL API 28.

I get the following error:

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)

I have tried restarting my PC and the emulator several times. Any ideas?

UPDATE: I reinstalled JDK, npm, react-native-cli and android studio. It still gives me the exact same error. Please help.

10
Have you tried increasing the count of your inotify watchers? github.com/guard/listen/wiki/…Andrew
@Andrew Tried it now. It did nothing :(dudeperryfect
problem is not specific to emulator usage, affects any unix-derived system (tested on Linux, macOS, Windows) works fine on Windows because file modes/ACLs are not relevant on Windows platform. this could be addressed within the rn git repo itself, in that regard accepted answer is a workaround.Shaun Wilson

10 Answers

452
votes

I fixed this problem with:

chmod 755 android/gradlew 

the chmod command sets the permissions of files or directories. https://www.computerhope.com/unix/uchmod.htm

55
votes

I think it's permission issue I faced this problem before, you can resolve it by changing the permission, run the following command

chmod 755 android/gradlew
13
votes

I tried the above solution.but in my case I had to use sudo because of the permission issue. You can resolve it by running the command

sudo chmod 755 android/gradlew

2
votes

For mac this worked for me.

sudo chmod 755 android/gradlew

1
votes

For Big Sur (Apple MacBook Air M1 Chip)

chmod 755 android/gradlew worked

0
votes

that's worked for me chmod 755 android/gradlew

0
votes

On MacBook Air M1 chip chmod 755 android/gradlew works great. Also add the below line in the android/local.properties file.

sdk.dir = /Users/YourUserNAME/Library/Android/sdk
0
votes

On the first approved answer from @Jinkey, in case you are wondering where to run this command, like in my case on Mac, follow these steps:

  1. In your terminal navigate to your project folder cd <project folder>, make sure the path to your project is correct.
  2. Then once in the folder, run the command by copying and pasting as is chmod 755 android/gradlew
-2
votes

I think it's permission issue I faced this problem before, you can resolve it by changing the permission, run the following command

chmod 755 android/gradlew

-2
votes

The issue is related to permissions, try this command.

chmod 755 android/gradlew