【问题标题】:Cordova for android: An error occurred while listening android targetsCordova for android:侦听 android 目标时出错
【发布时间】:2014-03-08 21:00:21
【问题描述】:

我已经阅读了相同问题的所有问题,并且我已经尝试了所有方法,但是当我尝试为 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 路径设置为 Path 变量。

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

编辑:

最终解决方案

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

【问题讨论】:

  • 你的项目名称是什么?表示文件夹或目录名称?
  • 我编辑了queston来回答你的cmets。所以:“cordova create fapp com.fapp Fapp”我也在 SO 上尝试了这个答案并调用“check_reqs”只返回“列出 Android 目标时发生错误”
  • 有时可能会由于您的驱动器上的写入权限而导致问题。把它放在 D:/ 之类的其他地方..
  • 抱歉,其他地方有什么? Cordova 安装会自动安装在那里。改变安卓路径?

标签: android cordova


【解决方案1】:

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

  • %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上面定义上面的环境变量。我在 用户变量 中定义了所有内容,它工作得很好。

【讨论】:

  • 谢谢,输入模拟器命令是一个很好的测试用例,帮助我解决了问题。有趣的是,我在许多文件夹之前添加了“%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools”并且它起作用了。如果我在路径的末尾键入它不起作用。我不知道为什么。
  • 我真的不知道。我的 %PATH% 完全按照我在答案中粘贴的顺序,并且它正在工作。但感谢分享这个。也许其他人也有同样的问题,他们可以尝试一下。
【解决方案2】:

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

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

首先在命令行中输入命令 android 进行检查。如果 SDK 未打开,则说明您没有正确设置变量和/或路径。

您应该有 3 个(如果您有单独的 android 变量,则应该有 4 个)变量。

ANT_HOME, JAVA_HOME and ANDROID_HOME

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

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

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

【讨论】:

    【解决方案3】:

    请参考问题

    An error occurred while listing Android targets

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

    很可能指向这个机器人的路径变量是错误的。 我使用 %ANDROID_HOME% 作为变量并将其缩放到路径变量 %ANDROID_HOME%\SDK\TOOLS。这种方法行不通。通过直接指向工具和平台工具实验解决。

    仅基于我所做的,它对我有用。希望您能解决问题。

    【讨论】:

    • 我(也是?)发现使用 %ANDROID_HOME% 设置不起作用;添加完整路径效果很好
    【解决方案4】:

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

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

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

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

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

    【讨论】:

      【解决方案5】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-06-06
        • 2021-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-10
        相关资源
        最近更新 更多