简体   繁体   中英

Cordova android build fails immediately [Error: spawn EACCES]

I am just getting started with with Cordova ( PhoneGap ) and trying to build my first project with it, however I am running into a problem with my compilation step- when I try to build ( in tracking down the problem I broke down the build step into prepare and compile and the former works fine as far as I know ) I see this:

~/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' }

Now from what I can tell this is a permissions problem, but having no Node or Cordova experience yet I am at a loss as to how to troubleshoot it. It looks as though it is trying to spawn another process - maybe the Android SDK? - and it is failing.

Is there a way I can ask Node or Cordova to give me more information on what is going on or is there a log file somewhere that will help me to track down what the problem is?

Edit: I realised cordova has a --verbose switch and when I activated it I get the above output with an additional couple of lines...

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

Unfortunately, they don't seem to actually give much more information, like which process it can't start.

对我来说,这已经解决了这个问题:

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

It's a permission issue, just execute:

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

That should fix the problem.

Using verbose like Solidak suggested works.

cordova build --release --verbose android

The last command was to access /platforms/android/gradlew so i chmod +x that file and it worked.

Its different for every one, I guess. Running --verbose would give you the file that Cordova needs access to. From there you can chmod 777 <file> . The command you should run to figure out the inaccessible file looks like this: cordova build --release --verbose android

I was facing the same issue. In my case, I had put the sample cordova project on a different ext3 partition than home folder. Since the partition was not NTFS, permissions shouldn't have been a problem. But when I tried all suggested methods (changing permissions, making everything executable), none of them worked. This problem went away as soon as I created the sample cordova folder in my home partition.

For MAC users change the name from "Android Studio" to AndroidStudio. My cordova build was taking back slash() in name of android studio so i changed the name of app. It is working for me.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM