177

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.

dudeperryfect
  • 1,787
  • 2
  • 7
  • 6
  • Have you tried increasing the count of your inotify watchers? https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers – Andrew Feb 05 '19 at 19:51
  • @Andrew Tried it now. It did nothing :( – dudeperryfect Feb 05 '19 at 19:56
  • 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 Apr 03 '21 at 21:51

9 Answers9

667

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

TheEhsanSarshar
  • 2,677
  • 22
  • 41
Jinkey
  • 6,686
  • 1
  • 6
  • 3
74

gradlew file permissions should be updated, you can resolve it by changing the permission, run the following command

chmod 755 android/gradlew

it will give (read,write,execute) permission for the user(owner), also (read, execute) for group and other users.

Omar Al-Howeiti
  • 1,227
  • 7
  • 19
18

It turns out that It's not gradle but it's android/gradlew. run the below command inside the root directory:

$ chmod +x android/gradlew

Now run

$ yarn android            
# OR   
$ npm run android 
# OR
$ npx react-native run-android

You should be good to go.

Mr_Green
  • 40,727
  • 45
  • 159
  • 271
Ericgit
  • 6,089
  • 2
  • 42
  • 53
17

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

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
Dharman
  • 30,962
  • 25
  • 85
  • 135
Nicholas Mberev
  • 1,563
  • 1
  • 14
  • 14
1

Go to the react native cli project directory then run this command below :

sudo chmod 755 android/gradlew 

then run the command:

npx react-native run-android

then start the metro (if it is not started automatically) by following command:

npx react-native start
0

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
karel
  • 5,489
  • 46
  • 45
  • 50
C Baraliya
  • 1,201
  • 1
  • 4
  • 3
0

sudo chmod 755 android/gradlew works perfectly fine for this issue in mac!

Vishwanath
  • 11
  • 2
-1

FIXED

Just run this:

sudo chmod 755 android/gradlew
ahmnouira
  • 1,607
  • 13
  • 8
  • This has already been mentioned in other answers, such as [this one](https://stackoverflow.com/a/74005690/2227743). – Eric Aya Mar 01 '23 at 09:34