【问题标题】:spawnSync ./gradlew EACCES error when running react native project on emulator udara在模拟器 udara 上运行反应本机项目时 spawnSync ./gradlew EACCES 错误
【发布时间】:2019-06-29 16:54:11
【问题描述】:

我正在尝试使用 react-native run-android 在 android studio 模拟器上安装我的 react-native 应用程序。 我已经用 abd-devices 检查了模拟器是否可用,并且我已经运行了 npm-install。

我正在使用 Ubuntu 18.04 和最新版本的 android studio,以及最新的 Pixel 2 XL API 28。

我收到以下错误:

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)

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

更新:我重新安装了 JDK、npm、react-native-cli 和 android studio。它仍然给我完全相同的错误。请帮忙。

【问题讨论】:

  • 您是否尝试过增加 inotify 观察者的数量? github.com/guard/listen/wiki/…
  • @Andrew 现在试了一下。它什么也没做:(
  • 问题并不特定于模拟器的使用,影响任何 unix 派生系统(在 Linux、macOS、Windows 上测试)在 Windows 上都能正常工作,因为文件模式/ACL 在 Windows 平台上不相关。这可以在 rn git repo 本身中解决,在这方面接受的答案是一种解决方法。

标签: react-native gradle android-gradle-plugin


【解决方案1】:

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

$ chmod +x android/gradlew

现在运行

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

你应该很高兴。

【讨论】:

    【解决方案2】:

    对于 mac,这对我有用。

    sudo chmod 755 android/gradlew

    【讨论】:

      【解决方案3】:

      在@Jinkey 的第一个批准答案中,如果您想知道在哪里运行此命令,例如我在 Mac 上的情况,请按照以下步骤操作:

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

      【讨论】:

        【解决方案4】:

        问题与权限有关, 试试这个命令。

        chmod 755 android/gradlew 
        

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

            【解决方案6】:

            这对我有用 chmod 755 android/gradlew

            【讨论】:

              【解决方案7】:

              适用于 Big Sur(Apple MacBook Air M1 芯片)

              chmod 755 android/gradlew 工作

              【讨论】:

                【解决方案8】:

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

                chmod 755 android/gradlew

                【讨论】:

                  【解决方案9】:

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

                  chmod 755 android/gradlew
                  

                  【讨论】:

                    【解决方案10】:

                    我尝试了上述解决方案。但在我的情况下,由于权限问题,我不得不使用 sudo。运行命令即可解决

                    sudo chmod 755 android/gradlew

                    【讨论】:

                    • 你能解释一下为什么你不使用与其他答案相同的路径吗?
                    【解决方案11】:

                    我解决了这个问题:

                    chmod 755 android/gradlew 
                    

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

                    【讨论】:

                    • 成功修复了问题。但是,如果您解释它的作用,那就太好了。我认为对很多人都有用。
                    • @Grez.Kev 此命令使 gradlew 文件变为可执行文件。哪个帮助代码可以运行。这个解决方案节省了我的时间。谢谢
                    • 我的 android 目录下没有 gradlew 目录,我该怎么办?
                    • 什么鬼?!你救了我的命.. 从来没想过
                    • @BlueBot gradlew 不是目录。这是一个文件(gradle wrapper),是您项目的一部分。
                    猜你喜欢
                    • 2020-04-16
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2021-11-29
                    • 2020-04-30
                    • 1970-01-01
                    相关资源
                    最近更新 更多