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/