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 <platform>
权限问题。更安全(也更容易)将每个平台恢复到其默认状态,而不是破解(并记住)单个文件/目录的权限更改。
【讨论】:
最安全的解决方案【参考方案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 错误输出: