web-dev-qa-db-fra.com

Cordova Android build échoue immédiatement [Erreur: spawn EACCES]

Je viens tout juste de commencer avec Cordova (PhoneGap) et d’essayer de construire mon premier projet avec celui-ci, mais j’ai un problème avec mon étape de compilation: lorsque j’essaie de le construire (en traquant le problème, j’ai décomposé l’étape build dans prepare et compile et le premier fonctionne bien pour autant que je sache), je vois ceci:

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

Maintenant, d'après ce que je peux dire, c'est un problème d'autorisations, mais n'ayant aucune expérience en matière de nœud ou de Cordova, je ne sais pas comment le résoudre. On dirait qu'il essaie de générer un autre processus - peut-être le SDK Android? - et ça échoue. 

Est-il possible de demander à Node ou à Cordova de me donner plus d'informations sur ce qui se passe ou existe-t-il un fichier journal quelque part qui m'aidera à identifier le problème?

Edit: J'ai réalisé que Cordova avait un commutateur --verbose et quand je l'ai activé, je reçois la sortie ci-dessus avec quelques lignes supplémentaires ...

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

Malheureusement, ils ne semblent pas vraiment donner beaucoup plus d’informations, comme quel processus, il ne peut pas commencer.

19
glenatron

C'est un problème de permission, il suffit d'exécuter:

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

Cela devrait résoudre le problème.

Pour moi, cela a résolu le problème:

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

33
Ricky Levi

Utiliser verbose comme suggéré par Solidak.

cordova build --release --verbose Android 

La dernière commande a été d'accéder à /platforms/Android/gradlew afin que __chmod +x ce fichier et cela a fonctionné.

10
Edward Newsome

C'est différent pour tout le monde, je suppose. Lancer --verbose vous donnerait le fichier auquel Cordova a besoin d'accéder. De là, vous pouvez chmod 777 <file>. La commande à exécuter pour déterminer le fichier inaccessible se présente comme suit: cordova build --release --verbose Android

5
Solidak

Je faisais face au même problème. Dans mon cas, j'avais placé le projet exemple Cordova sur une partition ext3 différente de celle du dossier de départ. Comme la partition n'était pas NTFS, les autorisations n'auraient pas dû être un problème. Mais lorsque j'ai essayé toutes les méthodes suggérées (modification des autorisations, tout rendu exécutable), aucune d'entre elles n'a fonctionné. Ce problème a disparu dès que j'ai créé le dossier exemple Cordova dans ma partition d'origine.

0
raghum

Pour les utilisateurs de MAC, changez le nom "Android Studio" en AndroidStudio. Ma version de Cordova reprenait slash () au nom du studio Android, j'ai donc changé le nom de l'application . Cela fonctionne pour moi.

0
Lokesh Deshmukh