android - Phonegap/Cordova build android node_modules/q/q.js throw e;

标签 android cordova ant ionic-framework node-modules

cordova build android 给了我以下错误

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

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

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

我的环境变量:

$ 设置 | grep "安卓\|路径"

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/tools:/Users/rover/Documents/Dev/Android/adt-bundle-mac-x86_64-20140702/sdk/平台工具:/Users/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

我使用的是 Mac OSX 10.10 (Yosemite),它可能与 Java 8 有问题。这有关系吗?

$ java -版本 java版本“1.8.0_05” Java(TM) SE 运行时环境 (build 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)

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

最佳答案

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

cordova platform remove android
cordova platform add android

用“cordova build android”重新编译,效果很好。

我认为 Cordova 可能想更新一些文件。

===== Ionic 更新 ========

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

ionic platform remove android
ionic platform add android

我注意到这通常发生在您中断 (Ctrl-C) 编译过程时。

关于android - Phonegap/Cordova build android node_modules/q/q.js throw e;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26783594/

相关文章:

java - Ant 找不到主类错误

java - 如何从底部设计圆形 View ?

android - 在没有工具栏的情况下使用 AppBarLayout 和 CollapsingToolbarLayout

android - 如何添加在不同的 android 项目中创建的类?

android - 是否可以在 google 文档请求中包含 http header ?

android - Cordova 火力地堡谷歌认证

java - 如何防止 Ant 在命令窗口中显示 [java]?

ios - 在 Cordova 项目中没有收到解析推送通知

cordova - 自定义字体在 Phonegap 中不起作用

ant - 有条件地重定向 ant exec 任务中的输出