web-dev-qa-db-fra.com

Phonegap/Cordova construire Android node_modules/q/q.js jeter e;

cordova construire Android me donne l'erreur suivante

node_modules/q/q.js:126 throw e; (*error details)

Cette question a déjà été posée, mais la réponse type concernant PATH et Android_HOME ne fonctionne pas pour moi.

J'ai mis cela dans l'extrait de code pour éviter les problèmes de soumission SO

export HOME="/Users/rover"
export Android_SDK="$HOME/Documents/Dev/Android/adt-bundle-mac-x86_64-20140702/sdk"
export Android_HOME="$Android_SDK/tools"
export Android_PLATFORM_TOOLS="$Android_SDK/platform-tools"
export PATH="$Android_HOME:$Android_PLATFORM_TOOLS:$Android_SDK/build-tools:$PATH"
export ANT_HOME="/usr/local/bin/ant"
#export PATH="$PATH:$ANT_HOME/bin"

Mes variables d'environnement:

$ set | grep "Android\| PATH"

Android_HOME =/Utilisateurs/mobile/Documents/Dev/Android/adt-bundle-mac-x86_64-20140702/sdk/tools Android_PLATFORM_TOOLS =/Utilisateurs/mobile/Documents/Dev/Android/adt-bundle-mac-x86_64 20140702/sdk/platform-tools Android_SDK =/Utilisateurs/rover/Documents/Dev/Android/adt-bundle-mac-x86_64-20140702/sdk CHEMIN =/Utilisateurs/rover/Documents/Dev/Android/adt-bundle-mac-x86_64-20140702/sdk/tools:/Utilisateurs/rover/Documents/Dev/Android/adt-bundle-mac-x86_64-20140702/sdk/platform-tools:/Utilisateurs/rover/Documents/Dev/Android/adt-bundle-mac-x86_64-20140702/sdk/build-tools:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin

$ which ant
/usr/local/bin/ant
$ ls /usr/local/bin/ant
/usr/local/bin/ant

$ cordova --version
4.0.0

$ ant -v
Apache Ant(TM) version 1.9.4

Je suis sur Mac OSX 10.10 (Yosemite) qui pourrait avoir un problème avec Java 8. Est-ce lié à cela?

$ Java -version Version Java "1.8.0_05" Environnement d’exécution Java SE (version 1.8.0_05-b13) Serveur Java HotSpot (TM) 64 bits VM ( construire 25.5-b02, mode mixte)

$ ant --execdebug
exec "/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/jre/bin/Java" -classpath "/usr/local/Cellar/ant/1.9.4/libexec/lib/ant-launcher.jar" -Dant.home="/usr/local/Cellar/ant/1.9.4/libexec" -Dant.library.dir="/usr/local/Cellar/ant/1.9.4/libexec/lib" org.Apache.tools.ant.launch.Launcher -cp ""

(*error details)

BUILD FAILED
/Users/rover/Documents/Dev/Android/adt-bundle-mac-x86_64-20140702/sdk/tools/ant/build.xml:653: The following error occurred while executing this line:
/Users/rover/Documents/Dev/Android/adt-bundle-mac-x86_64-20140702/sdk/tools/ant/build.xml:698: null returned: 1

Total time: 1 second

/Library/WebServer/Documents/Booster/core_ionic_git/platforms/Android/cordova/node_modules/q/q.js:126
                    throw e;
                          ^
Error code 1 for command: ant with args: debug,-f,/Library/WebServer/Documents/Booster/core_ionic_git/platforms/Android/build.xml,-Dout.dir=ant-build,-Dgen.absolute.dir=ant-gen
Error: /Library/WebServer/Documents/Booster/core_ionic_git/platforms/Android/cordova/build: Command failed with exit code 8
    at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:135:23)
    at ChildProcess.emit (events.js:98:17)
    at maybeClose (child_process.js:756:16)
    at Process.ChildProcess._handle.onexit (child_process.js:823:5)

Des idées pour résoudre ce problème?

25
mylord

J'ai remarqué que votre variable Android_HOME était peut-être mal configurée. Autant que je sache, elle devrait être définie sur la racine de votre dossier SDK (ce que vous avez défini sur Android_SDK), essayez-le Android_HOME/tools et $ Android_HOME/platform-tools sur votre chemin).

9
Marxama

Je me suis cogné la tête contre le mur pendant des heures et des heures et j'ai finalement trouvé une solution simple. Je suis allé dans le répertoire du projet et ai émis deux commandes:

cordova platform remove Android
cordova platform add Android

Recompilé avec "cordova build Android" et cela a fonctionné à merveille.

Je pense que Cordova voulait éventuellement mettre à jour certains fichiers.

===== Mise à jour pour Ionic ========

Si vous utilisez un framework ionique, ce sont les commandes pour votre sauvetage:

ionic platform remove Android
ionic platform add Android

J'ai remarqué que cela se produit normalement lorsque vous interrompez (Ctrl-C) le processus de compilation.

20
AnR

J'ai couru dans le même problème et l'ai résolu en échappant des caractères non-lettre dans config.xml. Particulary pour l'attribut name:

<name>Temps d'espera</name>

Je l'ai changé pour:

<name>Temps d\'espera</name>

Et puis ça fonctionne parfaitement. J'espère que ça aide.

2
Enric Mieza

@mylord J'ai eu une erreur similaire et cela était dû à un certificat de débogage invalide. Sous Linux, supprimez le fichier ~/.Android Debug.keystore. 

Lors de la prochaine construction, les outils de génération régénéreront un nouveau magasin de clés et une clé de débogage.

Cela a résolu pour moi. J'espère que ça aide.

1
bonitarunner

J'ai rencontré le même problème en exécutant «phonegap serve», mais la solution était très différente. J'ai remarqué que cette opération fonctionnerait lorsque je redémarrerais mon ordinateur. Au cas où quelqu'un d'autre se heurterait à ce problème. Voici la solution sur Ubuntu 15

echo fs.inotify.max_user_watches=524288 | Sudo tee -a /etc/sysctl.conf && Sudo sysctl -p

qui a été pris à partir du thread stackoverflow Erreur de surveillance Grunt - En attente ... Erreur fatale: regarder ENOSPC

En plus de l'erreur des affiches, j'ai eu l'erreur

at exports._errnoException (util.js:856:11)
at FSWatcher.start (fs.js:1313:19)
at Object.fs.watch (fs.js:1341:11)

plus bas. 

1
user3071643

J'ai eu le même problème. Cela était dû au fait qu'une application portant le même nom (et le même nom de domaine de style inversé dans mon cas) était installée sur le périphérique Android à partir du Google Play Store (notre version bêta).

0
user3094755

Avant de changer quoi que ce soit, créez un projet Cordova vide et essayez de le construire pour déterminer si le problème est spécifique au projet ou non.

Après de nombreux changements, je me suis dit que nous ne devrions pas avoir deux dossiers portant le même nom: jquery et jQuery!

0
Ghominejad

Je rencontre le même message d'erreur, mais mon paramètre Android_HOME est correct. L’erreur est due à l’ouverture d’un fichier .apk situé dans le dossier\platform\Android\ant-build. Après avoir fermé 7Zip qui occupe le fichier .apk, la construction de fourmi a été acceptée.

0
wangf