Cordova for android:在侦听android目标时发生错误

时间:2014-03-08 21:00:21

标签: android cordova

我已经阅读了所有相同问题的问题,我尝试了一切,但当我尝试为cordova添加android平台时,没有什么对我有用。

c:\Apps\fapp>cordova platform add android
Creating android project...

C:\Users\Andrej\.cordova\lib\android\cordova\3.4.0\bin\node_modules\q\q.js:126
                    throw e;
                          ^
Error: An error occurred while listing Android targets
    at C:\Users\Andrej\.cordova\lib\android\cordova\3.4.0\bin\lib\check_reqs.js:
87:29
    at _rejected (C:\Users\Andrej\.cordova\lib\android\cordova\3.4.0\bin\node_mo
dules\q\q.js:808:24)
    at C:\Users\Andrej\.cordova\lib\android\cordova\3.4.0\bin\node_modules\q\q.j
s:834:30
    at Promise.when (C:\Users\Andrej\.cordova\lib\android\cordova\3.4.0\bin\node
_modules\q\q.js:1079:31)
    at Promise.promise.promiseDispatch (C:\Users\Andrej\.cordova\lib\android\cor
dova\3.4.0\bin\node_modules\q\q.js:752:41)
    at C:\Users\Andrej\.cordova\lib\android\cordova\3.4.0\bin\node_modules\q\q.j
s:574:44
    at flush (C:\Users\Andrej\.cordova\lib\android\cordova\3.4.0\bin\node_module
s\q\q.js:108:17)
    at process._tickCallback (node.js:415:13)
Error: cmd: Command failed with exit code 8
    at ChildProcess.whenDone (C:\Users\Andrej\AppData\Roaming\npm\node_modules\c
ordova\src\superspawn.js:112:23)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:743:16)
    at Process.ChildProcess._handle.onexit (child_process.js:810:5)
  • 使用 cordova create fapp com.fapp Fapp
  • 创建项目
  • 系统是Windows 8
  • ANT,JAVA(JDK 1.7.0_51和JRE7),Android SDK安装自(17-19.0.3)和Android API(17-19)
  • 设置JAVA,ANDROID和ANT的所有环境变量,以及所有环境变量到bin变量的路径。

我真的尝试了一切,但一直在抛出这个问题。

编辑:

最终解决方案

  • 最后我重新安装了JDK和Android SDK,现在一切正常,即使对我来说仍然是个谜。

5 个答案:

答案 0 :(得分:16)

我遇到了同样的问题,并通过设置以下环境变量

解决了这个问题
  • %JAVA_HOME%指向java安装的根目录(不是bin目录)。在我的电脑中,它是:C:\Program Files\Java\jdk1.8.0。要测试它是否配置正确,请打开一个新终端并键入javac。它应该运行java编译器,不应该抱怨它不知道命令。请注意,环境变量仅在打开新终端时设置(至少在Windows上),因此每次更改内容时都必须打开新终端。

  • %ANT_HOME%指向您安装Apache ant的根源。在我的电脑中,它是:C:\Users\User\apache-ant-1.9.3。通过运行ant命令对其进行测试。它不应该抱怨你的机器不知道ant命令。记住在设置路径后打开一个新终端,然后尝试运行ant。

  • %ANDROID_HOME%指向您安装Android SDK的位置。例如:C:\Users\User\android\sdk。然后尝试键入emulator以确保其安装正确。

设置所有这些变量后,您可以在 PATH 环境变量中使用它们:

%PATH%包含以下条目:%ANT_HOME%\bin;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%JAVA_HOME%\bin

在Windows 8上,您可以通过右键单击开始按钮,选择系统,然后高级系统设置并单击环境变量按钮来配置路径和变量。请记住在PATH之上定义上述环境变量。我在用户变量中定义了所有内容,它的工作正常。

答案 1 :(得分:5)

- 遇到此错误的人可能的解决方案

我遇到了这个错误,它确实与路径变量有关。我以为我已经正确设置了一切,但我错过了一部分。

首先在命令行输入命令android进行检查。如果未打开SDK,则表示尚未正确设置变量和/或路径。

你应该有3个(或者如果你有单独的android那个)4个变量。

ANT_HOME, JAVA_HOME and ANDROID_HOME

ANDROID_HOME应该指向sdk。如果你(像我一样)下载了包含eclipse的包,你需要让这个变量指向android包文件夹里面的sdk文件夹,而不是android包文件夹本身(例如C:\ Dev \ adt-bundle-windows) \ SDK)

您需要在路径中添加%ANDROID_HOME%\tools%ANDROID_HOME%\platform-tools。以及指向ANT bin文件夹和jdk bin

的链接

我强烈建议您三重检查所有变量是否已正确设置并且所有四个部分都已添加到路径中。

答案 2 :(得分:1)

请参阅问题

An error occurred while listing Android targets

和链接 developer.android.com/tools/devices/managing-avds-cmdline.html

最有可能是指向这个android的路径变量是错误的。 我使用%ANDROID_HOME%作为变量,并将相同的路径变量%ANDROID_HOME%\ SDK \ TOOLS缩放。此方法不起作用。通过直接指向工具和平台工具进行实验解决。

基于我的所作所为,它对我有用。希望你能解决问题。

答案 3 :(得分:0)

版本3.5.0我遇到了同样的问题。

问题是,位于check_reqs的脚本C:\Users\{yourUserName}\.cordova\lib\android\cordova\3.5.0\bin的错误消息未正确转发。

我手动运行上述脚本并收到以下错误消息:

  

[错误:请安装Android目标19(Android最新SDK)。确保您还安装了最新的Android工具。运行" android"从您的命令行安装/更新任何缺少的SDK或工具。]

所以基本上要解决这个问题,你必须安装最新的Android SDK。

答案 4 :(得分:0)

此链接http://spring.io/guides/gs/android/ +以管理员身份运行cmd为我解决了这个问题。

这证实了Michael Brooks的假设,即此问题与Windows操作系统上的权限设置有关。 https://github.com/phonegap/phonegap-cli/issues/77