Cordova:命令失败,退出代码为EACCES

时间:2015-01-04 10:47:55

标签: android cordova

当我执行“cordova platform add android”时,命令返回:

  

错误:/Users/brieuc/.cordova/lib/android/cordova/3.6.4/bin/create:命令失败,退出代码为EACCES       在ChildProcess.whenDone(/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:135:23)       在ChildProcess.emit(events.js:95:17)       在Process.ChildProcess._handle.onexit(child_process.js:818:12)

我已经读过这可能是一个许可问题所以我试图使用“sudo cordova platform add android”但是返回了同样的错误。

我还尝试在项目文件夹和平台文件夹中使用chmod 777。

我尝试删除平台文件夹,重新创建文件夹,然后返回相同的错误。

为了您的信息,命令“java”,“ant”,“cordova”,“npm”都可以识别。

我唯一的猜测是我的SDK路径错误。

这就是我所做的:

(我在Mac Yosemite上获取信息)

我下载了独立SDK工具。

我创建了一个文件夹/ Development / Android并添加了解压缩的下载文件夹(android-sdk-macosx)。

有关您的信息,“platforms”文件夹为空。

我在/ etc / paths中添加了/ Development / Android / android-sdk-macosx / tools

的路径

我不确定它应该在这里,任何提示或解决方案都会受到赞赏。

2 个答案:

答案 0 :(得分:4)

我认为问题不在你的项目上。问题似乎在

/Users/brieuc/.cordova/lib/android/cordova/3.6.4/bin/create

没有必要的执行权限。尝试对该文件夹应用类似此命令的内容

chmod -R 777 /Users/brieuc/.cordova/lib/android/cordova/3.6.4/bin

它应该赋予它所有权利,从而让创建来执行。

答案 1 :(得分:2)

@Brieuc这是解决新问题的方法。

您需要在家中的.profile文件中指定Android SDK路径。

在终端,

sudo nano ~/.profile

然后在最后添加这些行,保存并关闭.profile。 (您的Android SDK和ANT可能有不同的路径。现在可能没有必要为您设置ANT路径。)

export ANT_HOME=/usr/share/ant
export ANDROID_HOME=/home/sagun/bin/android-sdk
export PATH=$PATH:$ANT_HOME/bin:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

现在在终端,您必须通知操作系统您对.profile

所做的更改
source ~/.profile

如果没有,请重启linux

现在,您可能仍会遇到一些权限问题,因为导航到您的android-sdk / tools然后输入

chmod +x android

希望这可以帮助你:)