在模拟器上运行反应本机项目时发生 EACCES 错误

我正在尝试使用 本地运行机器人 在 android 工作室模拟器上安装我的本机应用程序。 我已经用 abd-device 检查了模拟器是否可用,并运行了 npm-install。

我使用的是 Ubuntu 18.04和最新版本的 android 工作室,以及最新的 Pixel 2 XL API 28。

我得到以下错误:

/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)

我曾多次尝试重新启动我的电脑和模拟器。 有什么想法吗?

更新: 我重新安装了 JDK,npm,response-ativecli 和 android 工作室。它仍然给我完全相同的错误。请帮助。

80920 次浏览

我认为这是权限问题,我以前遇到过这个问题,你可以通过更改权限来解决它,运行以下命令

chmod 755 android/gradlew

我用以下方法解决了这个问题:

chmod 755 android/gradlew

Chmod 命令设置文件或目录的权限。 Https://www.computerhope.com/unix/uchmod.htm

我尝试了上面的解决方案。但是在我的情况下,由于许可问题,我不得不使用 sudo。可以通过运行该命令解决此问题

sudo chmod 755 android/gradlew

在 MacBook Air M1芯片上,chmod 755 android/gradlew运行良好。在 android/local.properties文件中添加以下代码行。

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

如果你想知道在哪里运行这个命令,比如我在 Mac 上运行这个命令,那么在@Jinkey 的第一个得到批准的回答中,按照下面的步骤操作:

  1. 在终端导航到项目文件夹 cd <project folder>时,请确保项目的路径是正确的。
  2. 然后在文件夹中按照 chmod 755 android/gradlew的方式复制和粘贴,运行该命令

对 Mac 来说,这对我很有用:

sudo chmod 755 android/gradlew

结果不是 gradle而是 android/gradlew。 在根目录中运行以下命令:

$ chmod +x android/gradlew

快跑

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

你应该可以走了。

在 mac 中,sudo chmod 755 android/gradlew可以很好地处理这个问题!

转到 response 本机 cli 项目目录,然后运行以下命令:

sudo chmod 755 android/gradlew

然后运行命令:

npx react-native run-android

然后通过以下命令启动地铁(如果不是自动启动) :

npx react-native start