【问题标题】:Error: spawn EACCES when trying to build Ionic app in Ubuntu 15.10错误:尝试在 Ubuntu 15.10 中构建 Ionic 应用程序时产生 EACCES
【发布时间】:2018-03-06 20:59:58
【问题描述】:

在过去的几周里,我一直在处理一个 cordova/ionic 项目。我使用Windows进行开发。但最近我不得不将我的开发环境更改为 Ubuntu。我使用 Ubuntu 15.10。在设置 Android SDK 、 JDK ANT 等之后尝试在 Ubuntu 中构建相同的项目,给了我这个错误。我可以毫无问题地“离子发球”或“科尔多瓦发球”。尝试删除并重新添加平台android,但问题是一样的。以下是错误。

user@myhost:~/works/myproject$ ionic build android
Running command: /home/user/works/myproject/hooks/after_prepare/010_add_platform_class.js /home/user/works/myproject
add to body class: platform-android
Running command: /home/user/works/myproject/hooks/after_prepare/020_remove_sass_from_platforms.js /home/user/works/myproject
Running command: /home/user/works/myproject/platforms/android/cordova/build 
ANDROID_HOME=/home/user/android
JAVA_HOME=/usr/lib/jvm/java-8-oracle
Running: /home/user/works/myproject/platforms/android/gradlew cdvBuildDebug -b /home/user/works/myproject/platforms/android/build.gradle -Dorg.gradle.daemon=true
error caught: Error: spawn EACCES
/home/user/works/myproject/platforms/android/cordova/node_modules/q/q.js:126
                    throw e;
                    ^

Error: spawn EACCES
    at exports._errnoException (util.js:874:11)
    at ChildProcess.spawn (internal/child_process.js:298:11)
    at Object.exports.spawn (child_process.js:339:9)
    at module.exports (/home/user/works/myproject/platforms/android/cordova/lib/spawn.js:37:35)
    at /home/user/works/myproject/platforms/android/cordova/lib/build.js:370:24
    at _fulfilled (/home/user/works/myproject/platforms/android/cordova/node_modules/q/q.js:798:54)
    at self.promiseDispatch.done (/home/user/works/myproject/platforms/android/cordova/node_modules/q/q.js:827:30)
    at Promise.promise.promiseDispatch (/home/user/works/myproject/platforms/android/cordova/node_modules/q/q.js:760:13)
    at /home/user/works/myproject/platforms/android/cordova/node_modules/q/q.js:821:14
    at flush (/home/user/works/myproject/platforms/android/cordova/node_modules/q/q.js:108:17)
ERROR building one of the platforms: Error: /home/user/works/myproject/platforms/android/cordova/build: Command failed with exit code 1
You may not have the required environment or OS to build this project
Error: /home/user/works/myproject/platforms/android/cordova/build: Command failed with exit code 1

检查了权限/所有权问题,但没有发现任何问题。我可以编译一个 java 文件,因此我的 jdk 没有问题。这是我的离子信息

Cordova CLI: 5.4.0
Ionic CLI Version: 1.7.8
Ionic App Lib Version: 0.6.4
OS: Distributor ID: Ubuntu Description: Ubuntu 15.10 
Node Version: v4.2.2

【问题讨论】:

标签: android cordova ubuntu ionic-framework ionic


【解决方案1】:

在我的 android-sdk 文件夹上递归地修复了 chmod 765

感谢 Muhsin 的帮助 :D

chmod 777 -R ~/android

【讨论】:

    【解决方案2】:

    chmod 755 -R ~/android 也做到了。没有充分的理由让整个文件夹都可写。

    干杯。

    【讨论】:

      【解决方案3】:

      所以基本概念是更改平台命令尝试运行的文件夹的权限。

      在构建过程中,错误消息会突出显示构建失败的文件夹

      在我的例子中是 /hooks/after_prepare/010_add_platform_class.js

      所以我在 hooks 文件夹上运行了 chmod 命令,例如 chmod-R 777 hooks

      【讨论】:

        【解决方案4】:

        sudo chmod -R 777 ~/android-studio/gradle/gradle-4.1/bin/gradle

        这对我有用,因为这已在以下内容中进行了解释: here

        【讨论】:

          【解决方案5】:

          这有点老了,但是今天我要处理一个旧项目,因为我缺少 Gradle 模板,所以我从 Android Studio 安装中复制了但是任何时候我都会运行 cordova run android 得到 EACCES 错误,我所做的是

          cp -r ${android_studio_installation}/plugins/android/lib/template ${android_sdk}/tools/
          chmod +x ${android_sdk}/tools/templates/gradle/wrapper/gradlew
          

          之后就正常了

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-08-12
            • 2020-02-12
            • 2016-09-09
            • 2019-03-26
            • 2017-09-27
            相关资源
            最近更新 更多