Cordova:命令失败,退出代码为 EACCES
Cordova : Command failed with exit code EACCES
当我执行 "cordova platform add android" 命令时 return 这个 :
Error: /Users/brieuc/.cordova/lib/android/cordova/3.6.4/bin/create: Command failed with exit code EACCES
at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:135:23)
at ChildProcess.emit (events.js:95:17)
at Process.ChildProcess._handle.onexit (child_process.js:818:12)
我读到这可能是权限问题所以我尝试使用 "sudo cordova platform add android" 但同样的错误是 returned.
我还尝试在我的项目文件夹和平台文件夹上使用 chmod 777。
我尝试删除 platforms 文件夹,然后重新创建了该文件夹,然后 return 编辑了同样的错误。
供您参考,命令 "java"、"ant"、"cordova"、"npm" 都可以识别。
我唯一的猜测是我的 SDK 路径错误。
这是我所做的:
(我在 Mac Yosemite 上获取信息)
我下载了 Standalone SDK 工具。
我创建了一个文件夹/Development/Android并添加了解压下载的文件夹(android-sdk-macosx)。
请注意,"platforms" 文件夹是空的。
我添加到 /etc/paths /Development/Android/android-sdk-macosx/tools
的路径
我不确定它应该在这里,任何提示或解决方案将不胜感激。
我认为问题不在您的项目上。问题似乎在
/Users/brieuc/.cordova/lib/android/cordova/3.6.4/bin/create
没有必要的执行权限。尝试为该文件夹应用类似此命令的内容
chmod -R 777 /Users/brieuc/.cordova/lib/android/cordova/3.6.4/bin
它应该赋予它所有权利,从而让 create 被执行。
@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
现在在终端,您必须通知 OS 您对 .profile
所做的更改
source ~/.profile
如果不行,请重新启动 linux
现在,您可能仍然面临一些权限问题,为此请导航至您的 android-sdk/tools,然后输入
chmod +x android
希望对您有所帮助:)
当我执行 "cordova platform add android" 命令时 return 这个 :
Error: /Users/brieuc/.cordova/lib/android/cordova/3.6.4/bin/create: Command failed with exit code EACCES at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:135:23) at ChildProcess.emit (events.js:95:17) at Process.ChildProcess._handle.onexit (child_process.js:818:12)
我读到这可能是权限问题所以我尝试使用 "sudo cordova platform add android" 但同样的错误是 returned.
我还尝试在我的项目文件夹和平台文件夹上使用 chmod 777。
我尝试删除 platforms 文件夹,然后重新创建了该文件夹,然后 return 编辑了同样的错误。
供您参考,命令 "java"、"ant"、"cordova"、"npm" 都可以识别。
我唯一的猜测是我的 SDK 路径错误。
这是我所做的:
(我在 Mac Yosemite 上获取信息)
我下载了 Standalone SDK 工具。
我创建了一个文件夹/Development/Android并添加了解压下载的文件夹(android-sdk-macosx)。
请注意,"platforms" 文件夹是空的。
我添加到 /etc/paths /Development/Android/android-sdk-macosx/tools
的路径我不确定它应该在这里,任何提示或解决方案将不胜感激。
我认为问题不在您的项目上。问题似乎在
/Users/brieuc/.cordova/lib/android/cordova/3.6.4/bin/create
没有必要的执行权限。尝试为该文件夹应用类似此命令的内容
chmod -R 777 /Users/brieuc/.cordova/lib/android/cordova/3.6.4/bin
它应该赋予它所有权利,从而让 create 被执行。
@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
现在在终端,您必须通知 OS 您对 .profile
所做的更改source ~/.profile
如果不行,请重新启动 linux
现在,您可能仍然面临一些权限问题,为此请导航至您的 android-sdk/tools,然后输入
chmod +x android
希望对您有所帮助:)