Phonegap / Cordova构建android node_modules / q / q.js throw e;

cordova build android给了我以下错误

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

之前已经问过这个问题,但关于PATH和ANDROID_HOME的典型答案对我没有用。

我已将其放入代码段以避免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" 

我的环境variables:

$ set | grep“ANDROID \ | PATH”

ANDROID_HOME = / Users / rover / Documents / Dev / Android / adt-bundle-mac-x86_64-20140702 / sdk / tools ANDROID_PLATFORM_TOOLS = / Users / rover / Documents / Dev / Android / adt-bundle-mac-x86_64-20140702 / sdk / platform-tools ANDROID_SDK = / Users / rover / Documents / Dev / Android / adt-bundle-mac-x86_64-20140702 / sdk PATH = / Users / rover / Documents / Dev / Android / adt-bundle-mac-x86_64-20140702 / SDK /工具:/用户/流动站/文档/开发/安卓/ ADT-束-MAC-x86_64-20140702 / SDK /平台的工具:/用户/流动站/文档/开发/安卓/ ADT-束-MAC-x86_64的-20140702 / SDK /编译工具:在/ 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 

我在Mac OSX 10.10(Yosemite)上可能有Java 8的问题。这可能是相关的吗?

$ java -version java version“1.8.0_05”Java(TM)SE运行时环境(版本1.8.0_05-b13)Java HotSpot(TM)64位服务器VM(版本25.5-b02,混合模式)

 $ 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) 

有关解决这个问题的想法?

我注意到您的ANDROID_HOMEvariables可能设置不正确 – 据我所知,它应该设置为SDK文件夹的根目录(你有ANDROID_SDK设置为),试试(并确保你仍然有两个$您路径上的ANDROID_HOME / tools和$ ANDROID_HOME / platform-tools)。

我把头撞在墙上好几个小时,最终想出了一个简单的解决方案。 我进入了项目目录并发出了两个命令:

 cordova platform remove android cordova platform add android 

用“cordova build android”重新编译,它就像一个魅力。

我认为cordova想要更新一些文件。

=====离子更新========

如果您使用ionic framework,那么这些是您的救援命令:

 ionic platform remove android ionic platform add android 

我注意到这通常发生在你打破(Ctrl-C)编译过程时。

我遇到了同样的问题,并通过在config.xml转义非字母字符来解决它。 特别是name属性:

 Temps d'espera 

我改成了:

 Temps d\'espera 

然后它运行得很好。 希望能帮助到你。

@mylord我有类似的错误,这是由于无效的调试证书。 在Linux上删除〜/ .android debug.keystore文件。

下次构建时,构建工具将重新生成新的密钥库和调试密钥。

这解决了我。 我希望这有帮助。

我在运行’phonegap serve’时遇到了同样的问题,但解决方案却截然不同。 我注意到当我重新启动计算机时操作会起作用。 万一其他人遇到这个问题。 这是Ubuntu 15的解决方案

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

这是从stackoverflow线程Grunt手表错误 – 等待…致命错误:观看ENOSPC

除了海报错误,我有错误

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

再向下。

我遇到相同的错误消息,但我的ANDROID_HOME设置是正确的。 我发现错误是由我在\ platforms \ android \ ant-build文件夹中打开.apk文件引起的。 关闭占用.apk文件的7zip之后,ant build通过了。

在更改任何内容之前, 创建一个空的cordova项目并尝试构建它,您可以找出问题是项目特定与否。

在我做了很多改变之后,我发现我们不应该有两个具有相同名称的文件夹: jqueryjQuery

我遇到过同样的问题。 这是因为安装在Android设备上的应用程序具有相同的名称(在我的情况下具有相同的反向样式域名),该应用程序源自Google Play商店(这是我们的Beta版本)。