Cordova android构建立即失败[错误:生成EACCES]

时间:2013-11-21 00:16:12

标签: android node.js cordova

我刚刚开始使用Cordova(PhoneGap)并尝试用它构建我的第一个项目,但是我遇到了编译步骤的问题 - 当我尝试构建时(在追踪问题时我发生了故障) build步入preparecompile并且前者在我知道的情况下正常工作)我看到了这一点:

~/Projects/MyProject$ cordova compile android
Compiling app on platform "android" via command "/media/glenatron/local disk/Projects/Cordova/MyProject/platforms/android/cordova/build" 
{ [Error: spawn EACCES] code: 'EACCES', errno: 'EACCES', syscall: 'spawn' }

现在从我可以说这是一个权限问题,但没有Node或Cordova经验但我不知道如何解决它。它看起来好像正在尝试产生另一个进程 - 也许是Android SDK? - 它失败了。

我有没有办法让Node或Cordova向我提供有关正在发生的事情的更多信息,或者是否有某个日志文件可以帮助我找出问题所在?

编辑:我意识到cordova有一个--verbose开关,当我激活它时,我得到了上面的输出,还有几行......

Error: spawn EACCES
    at errnoException (child_process.js:980:11)
    at Process.ChildProcess._handle.onexit (child_process.js:771:34)

不幸的是,他们似乎并没有提供更多信息,例如 进程无法启动。

6 个答案:

答案 0 :(得分:33)

对我而言,这已经解决了这个问题:

chmod 777 /Applications/Android\ Studio.app/Contents/gradle/gradle-2.2.1/bin/gradle

答案 1 :(得分:26)

这是一个权限问题,只需执行:

chmod 777 "/media/glenatron/localdisk/Projects/Cordova/MyProject/platforms/android/cordova/build"

这应该解决问题。

答案 2 :(得分:11)

使用类似Solidak的详细建议作品。

cordova build --release --verbose android

最后一个命令是访问/platforms/android/gradlew所以我chmod +x该文件并且有效。

答案 3 :(得分:5)

我觉得每个人都不一样。运行--verbose将为您提供Cordova需要访问的文件。从那里你可以chmod 777 <file>。您应该运行以找出无法访问的文件的命令如下所示:cordova build --release --verbose android

答案 4 :(得分:0)

我遇到了同样的问题。在我的例子中,我将示例cordova项目放在与home文件夹不同的ext3分区上。由于分区不是NTFS,因此权限应该不是问题。但是,当我尝试所有建议的方法(更改权限,使所有可执行文件)时,它们都没有工作。我在家庭分区中创建示例cordova文件夹后,此问题就消失了。

答案 5 :(得分:0)

对于MAC用户,将名称从“ Android Studio”更改为AndroidStudio。我的cordova版本以android studio的名称取回slash(),所以我更改了应用程序的名称。 它对我有用。