我已经阅读了所有相同问题的问题,我尝试了一切,但当我尝试为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)
我真的尝试了一切,但一直在抛出这个问题。
编辑:
最终解决方案
答案 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