cordova build 命令失败,退出代码 EACCES

Posted

技术标签:

【中文标题】cordova build 命令失败,退出代码 EACCES【英文标题】:cordova build Command failed with exit code EACCES 【发布时间】:2014-08-16 01:37:47 【问题描述】:

Cordova 构建失败,错误代码:EACCESS

$ cordova build android
Running command: /home/user/proj1/platforms/android/cordova/build 
execvp(): Permission denied
Error: /home/user/proj1/platforms/android/cordova/build: Command failed with exit code EACCES
    at ChildProcess.whenDone (/usr/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:131:23)
    at ChildProcess.EventEmitter.emit (events.js:95:17)
    at Process.ChildProcess._handle.onexit (child_process.js:795:12)

 ======================================   
     OS  : Ubuntu 14.04
     npm version: 1.4.16
     cordova version : 3.5.0-0.2.4
 ======================================

已将android平台添加到proj1 尝试重新安装cordova,但没有成功

【问题讨论】:

【参考方案1】:

由于某种原因,构建当前不是可执行文件。要解决此问题,请打开终端并输入以下命令:

$ cd <your-project-directory>/platforms/android/cordova
$ chmod a+x build

【讨论】:

我遇到了类似的问题,但使用的是“platforms/android/gradlew”。尝试在“gradlew”目录上运行 chmod,效果很好! 我还需要在 android 文件夹中的 gradlew 上执行此操作,以便为 Android 构建。 谢谢!在 macos 更新到 10.15 (catalina) 后,这出现在我身上。【参考方案2】:

您应该为两个文件添加权限:

转到 Cordova 根目录并运行:

chmod a+x platforms/android/gradlew
chmod a+x platforms/android/cordova/build

【讨论】:

gradlew 权限对我来说是个问题。仅更新 cordova 构建文件的权限并不能解决我的问题。但是不确定是什么原因造成的。 ty 这个答案帮助了我。【参考方案3】:

这是一个常见的 PhoneGap 问题。

大多数时候它与build 文件夹和脚本文件的权限有关。

尝试在他们身上使用:chmod a+x

【讨论】:

我真的感受到了你的痛苦,但出于显而易见的原因而投反对票...... cmon!尝试提供更多帮助! 你能说明如何使用 chmod a+x 行吗?或者你只是在父文件夹中输入它并按回车键? 你必须chmod a+x /directory/file才能让它工作。见:linux.org/threads/file-permissions-chmod.4094 我还需要在 android 文件夹中的 gradlew 上执行此操作,以便为 Android 构建它。【参考方案4】:

我的建议是删除platforms 目录,然后重新安装每个平台。

$ cd <your-project-directory>
$ rm -r platforms  # -or- manually remove the directory
$ cordova platform add <platform>  # ios, android, ...

运行 chmod a+x build(如已接受的答案中所建议)不能解决 cordova platform rm &lt;platform&gt; 权限问题。更安全(也更容易)将每个平台恢复到其默认状态,而不是破解(并记住)单个文件/目录的权限更改。

【讨论】:

最安全的解决方案【参考方案5】:

要解决 EACCESS 问题,请复制并保存您的平台自定义图标/splashes/config.xml 设置并删除平台文件夹。之后运行 phonegap 再次从您的控制台运行 android。它应该再次工作。之后将自定义文件/设置复制回新的平台文件夹。

【讨论】:

【参考方案6】:

我的问题通过删除地图 /platforms/android 得到了解决。之后我再次添加了平台。

cordova平台添加android

对我来说,它解决了,但我认为显示此错误的原因有多种..

!备份你的图标!

记得把你的图标备份到 /platforms/android/res/ 或者复制整个地图作为备份,以确保您不会丢失您的工作......

【讨论】:

【参考方案7】:

如果您是管理员并且只是来自项目根目录的sudo chmod -R 777 ./platforms/,则可以暴力破解。

【讨论】:

【参考方案8】:

这里很难诊断问题。您能否在问题描述中添加更多信息?

就我所见,这并不算多,这是因为其中一个可执行文件没有为您的用户提供正确的执行权限(假设您在 Ubuntu 14.04 上根据您的输出)。

确保 Android SDK 工具和平台工具以及 Oracle JDK 和 Ant 在您的 PATH 中并具有适当的权限。否则,请在此处输入更多信息。

【讨论】:

这应该是评论,而不是答案【参考方案9】:

我有同样的问题,经过无数次的尝试和错误,今天解决了。我实际上已经获得了 BUILD SUCCESS 的出现。 问题是改变环境变量..来自

JAVA_HOME : c:\Program Files(x86)\Java\jre 路径:c:\Program Files(x86)\Java\jdk1.x.x\bin

JAVA_HOME : c:\Program Files(x86)\Java\jdk1.x.x\jre 路径:c:\Program Files(x86)\Java\jdk1.x.x\bin

注意:JAVA_HOME 必须指向JDK/JRE(jdk 的jre 子级)。我安装了 jre 和 jdk。看来我需要同时安装两个 Cordova-CLI 才能在 windows8.1 上工作。 我希望这会有所帮助。

【讨论】:

以上是关于cordova build 命令失败,退出代码 EACCES的主要内容,如果未能解决你的问题,请参考以下文章

运行cordova build android时出错(退出代码1)

运行cordova build ios --release(退出代码1)时发生错误[关闭]

avdmanager:命令失败,退出代码为 1 cordova

cordova /platforms/android/gradlew:命令失败,退出代码 1 错误输出:

无法安装“cordova-plugin-whitelist”:错误:cmd:命令失败,退出代码为 1

VS2013 Cordova 空白应用程序命令失败,退出代码 8 错误