40 votes

Ionic build Android, Erreur : spawn EACCES

Si je suis ces étapes pour créer une nouvelle application :

Rubens-MacBook-Pro:~ rlopez$ npm install -g cordova ionic
Rubens-MacBook-Pro:~ rlopez$ ionic start myApp tabs
Rubens-MacBook-Pro:~ rlopez$ cd myApp
Rubens-MacBook-Pro:myApp rlopez$  ionic platform add android@6.2.2 //6.1.x has a bug
Rubens-MacBook-Pro:myApp rlopez$  ionic build android

J'obtiens ce résultat :

> ionic-hello-world@ ionic:build /Users/rlopez/Proyectos/sfp-concursaPy
> ionic-app-scripts build

[15:13:28]  ionic-app-scripts 1.1.4 
[15:13:28]  build dev started ... 
[15:13:28]  clean started ... 
[15:13:28]  clean finished in 3 ms 
[15:13:28]  copy started ... 
[15:13:28]  transpile started ... 
[15:13:31]  transpile finished in 2.96 s 
[15:13:31]  preprocess started ... 
[15:13:31]  preprocess finished in less than 1 ms 
[15:13:31]  webpack started ... 
[15:13:31]  copy finished in 3.17 s 
[15:13:41]  webpack finished in 9.26 s 
[15:13:41]  sass started ... 
[15:13:41]  sass finished in 897 ms 
[15:13:41]  postprocess started ... 
[15:13:41]  postprocess finished in 1 ms 
[15:13:41]  lint started ... 
[15:13:41]  build dev finished in 13.15 s 
[15:13:43]  lint finished in 2.04 s 
ANDROID_HOME=/Users/rlopez/Library/Android/sdk

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home

Error: spawn EACCES

L'exécution de ionic info donne le résultat suivant :

Your system information:

Cordova CLI: 6.5.0 
Ionic Framework Version: 3.1.1
Ionic CLI Version: 2.2.3
Ionic App Lib Version: 2.2.1
Ionic App Scripts Version: 1.3.6
ios-deploy version: 1.8.5 
ios-sim version: 5.0.13 
OS: OS X El Capitan
Node Version: v6.10.1
Xcode version: Xcode 7.3.1 Build version 7D1014

Qu'est-ce que je fais de mal ? Est-ce un bug dans Ionic ?

[Edit]

Running ionic build android --verbose donne le résultat suivant :

Running command: "/Applications/Android Studio 2.4 
Preview.app/Contents/gradle/gradle-3.4.1/bin/gradle" -p 
/Users/rlopez/myApp/platforms/android wrapper -b 
/Users/rlopez/myApp/platforms/android/wrapper.gradle

Error: spawn EACCES
    at exports._errnoException (util.js:1018:11)
    at ChildProcess.spawn (internal/child_process.js:319:11)
    at Object.exports.spawn (child_process.js:378:9)
    at exports.spawn(/Users/rlopez/myApp/platforms/android/cordova/node_modules/cordova-common/src/superspawn.js:134:31)
    at GradleBuilder.runGradleWrapper(/Users/rlopez/myApp/platforms/android/cordova/lib/builders/GradleBuilder.js:78:14)
    at /Users/rlopez/myApp/platforms/android/cordova/lib/builders/GradleBuilder.js:178:21
    at _fulfilled (/Users/rlopez/myApp/platforms/android/cordova/node_modules/q/q.js:854:54)
    at self.promiseDispatch.done (/Users/rlopez/myApp/platforms/android/cordova/node_modules/q/q.js:883:30)
    at Promise.promise.promiseDispatch (/Users/rlopez/myApp/platforms/android/cordova/node_modules/q/q.js:816:13)
    at /Users/rlopez/myApp/platforms/android/cordova/node_modules/q/q.js:570:49

0 votes

Il y a 0 texte après l'erreur eaccess ? Que se passe-t-il si vous sudo su - et que vous exécutez à nouveau les commandes ?

0 votes

Ça n'a pas marché. Avez-vous une idée de la façon dont je peux obtenir un autre message d'erreur ? Y a-t-il des drapeaux que je peux utiliser pour imprimer plus de résultats ?

1 votes

Essayez peut-être de construire ionic Android --verbose . Si cela ne vous aide pas, essayez de supprimer votre dossier hooks.

98voto

Mayank R Jain Points 195

J'ai eu la même erreur aujourd'hui. Grâce aux commentaires ci-dessus, voici comment je l'ai corrigée.

Ran :

cordova build android --verbose

et il m'a montré où il a obtenu l'erreur "Permission refusée"... Dans mon cas, c'était :

Running command: /usr/libexec/java_home
Command finished with error code 0: /usr/libexec/java_home
ANDROID_HOME=/Users/mj/phonegap/adt-bundle-mac-x86_64-20140321/sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
Running command: "/Applications/Android Studio.app/Contents/gradle/gradle-2.2.1/bin/gradle"
 -p /Users/mj/EduceMobile/app/platforms/android wrapper -b /Users/mj/EduceMobile/app/platfo
rms/android/wrapper.gradle

Pour réparer, couru :

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

...et

...
...
:cdvBuildDebug

BUILD SUCCESSFUL

Total time: 2 mins 44.195 secs

J'espère que cela vous aidera.

0 votes

@CharlieAng Cela a parfaitement fonctionné ! Vous devriez ajouter une réponse réelle plutôt qu'un commentaire pour que cela puisse aider plus de personnes.

0 votes

@TheVinceble Je viens de le poster en tant que réponse réelle. :) Heureux d'entendre que cela fonctionne bien pour vous.

0 votes

Veillez à placer le chemin d'accès complet entre guillemets pour éviter les espaces dans l'un des noms de répertoire.

20voto

Patrik Points 515

Les solutions ci-dessus n'ont pas fonctionné pour moi. J'ai résolu l'erreur avec cette commande :

chmod 755 platforms/android/gradlew

0 votes

Fonctionne comme un charme !

11voto

Charlie Ang Points 741

Pour ceux qui obtiennent une erreur similaire après avoir mis à jour Android Studio vers la version 3.x, vous pouvez exécuter la commande suivante pour la corriger :

sudo chmod 755 /Applications/Android\ Studio.app/Contents/gradle/gradle-4.1/bin/gradle

J'espère que cela vous aidera !

11voto

Kathan Shah Points 697

Seulement pour OSX --- Allez dans le dossier Applications du finder et renommez simplement le nom du paquet Android Studio App en supprimant les espaces entre les deux.

Avant : Android Studio Après : AndroidStudio

Il n'y a pas de problème de permissions par défaut, c'est juste l'espace qui posait problème.

A la vôtre !

7voto

Vijay Chauhan Points 449

Je viens de rencontrer le même problème, et je ne pense pas que cela ait quelque chose à voir avec sudo - il manque simplement à cette commande la permission d'exécuter.

chmod +x hooks/after_prepare/010_add_platform_class.js

0 votes

Pareil. J'ai oublié de mettre la permission d'exécution à l'un de mes crochets personnalisés.

0 votes

Après le chmod, devons-nous ajouter la plateforme ios à Cordova rm et la réintégrer ? ....chmod ne fonctionne pas pour moi.

0 votes

Vous n'avez pas besoin de plateforme rm.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X