【问题标题】:'Error: the command "android" failed' using cordova'错误:命令“android”失败'使用cordova
【发布时间】:2014-07-04 21:34:32
【问题描述】:

我正在尝试在 cordova 上添加 android 平台。我在 Android SDK 中添加并下载了最新的 SDK,我的路径是:export PATH=${PATH}:/Users/xxx/Development/android-sdk-macosx/platform-tools:Users/xxx/Development/android-sdk-macosx/tools,但我不断收到以下错误:

Error: The command "android" failed. Make sure you have the latest Android SDK installed, and the "android" command (inside the tools/ folder) is added to your path.
    at /Users/xxx/.cordova/lib/android/cordova/3.5.0/bin/lib/check_reqs.js:85:29
    at _rejected (/Users/xxx/.cordova/lib/android/cordova/3.5.0/bin/node_modules/q/q.js:808:24)
    at /Users/xxx/.cordova/lib/android/cordova/3.5.0/bin/node_modules/q/q.js:834:30
    at Promise.when (/Users/xxx/.cordova/lib/android/cordova/3.5.0/bin/node_modules/q/q.js:1079:31)
    at Promise.promise.promiseDispatch (/Users/xxx/.cordova/lib/android/cordova/3.5.0/bin/node_modules/q/q.js:752:41)
    at /Users/xxx/.cordova/lib/android/cordova/3.5.0/bin/node_modules/q/q.js:574:44
    at flush (/Users/xxx/.cordova/lib/android/cordova/3.5.0/bin/node_modules/q/q.js:108:17)
    at process._tickCallback (node.js:419:13)
Error: /Users/xxx/.cordova/lib/android/cordova/3.5.0/bin/create: Command failed with exit code 8
    at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:131:23)
    at ChildProcess.emit (events.js:98:17)
    at maybeClose (child_process.js:755:16)
    at Process.ChildProcess._handle.onexit (child_process.js:822:5)

我做错了什么?我已经到处寻找答案,但似乎没有任何效果。 提前致谢!

【问题讨论】:

  • 检查您是否设置了以下路径ANDROID_HOMEANT_HOME和安装Git。更新系统 PATH 变量以包含 Android、Ant 和 Git 目录。
  • @frank:cordova 项目不使用 ANDROID_HOME 和 ANT_HOME 环境变量。 Android SDK 工具平台工具目录必须存在于路径中。
  • @frank 和 Lorenzo:我配置了 ANDROID_HOME 和 ANT_HOME。另外,我在类路径中也有工具和平台工具,使用$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

标签: android macos cordova


【解决方案1】:

如果 Apache CordovaAndroid Studio 0.8 for Mac OS X 10.9,如果您已安装在默认的 /Applications 文件夹中,请在终端上运行它

export ANDROID_HOME="/Applications/Android Studio.app/sdk"
export ANDROID_TOOLS="/Applications/Android Studio.app/sdk/tools/"
export ANDROID_PLATFORM_TOOLS="/Applications/Android Studio.app/sdk/platform-tools/"
PATH=$PATH:$ANDROID_HOME:$ANDROID_TOOLS:$ANDROID_PLATFORM_TOOLS

要确认,运行 echo 并获取

echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Applications/Android Studio.app/sdk:/Applications/Android Studio.app/sdk/tools/:/Applications/Android Studio.app/sdk/platform-tools/

对于 Cordova 3.6,它在新的 Android Studio 上引发了另一个错误

Error: Please install Android target "android-19"

要解决此问题,请在 IDE 中打开 SDK 管理器,然后下载提到的 android 版本 (android-19)

【讨论】:

    【解决方案2】:

    android 命令是 android sdk 工具包的一部分。 androidadb 都被 Cordova 工具用来发挥它们的魔力,两者都需要放在路径上。

    它们位于以下目录中:

    path/to/android/sdk/tools
    path/to/android/sdk/platform-tools  
    

    我不知道您正在开发什么操作系统。修改路径的过程在windows和unix系统上是不同的

    在类 unix 系统上添加到路径

    在我的系统 (OSX) 上,这是通过将以下行添加到 .bash_profile 来完成的:

    PATH=$PATH:/Users/lorenzo/dev/sdks/adt-bundle/sdk/tools
    PATH=$PATH:/Users/lorenzo/dev/sdks/adt-bundle/sdk/platform-tools
    

    这也可以在一行中完成:

    PATH=$PATH:/Users/lorenzo/dev/sdks/adt-bundle/sdk/tools:/Users/lorenzo/dev/sdks/adt-bundle/sdk/platform-tools
    

    这会将路径字符串附加到全局 PATH 变量中。在 unix 上,路径分隔符是 ':'

    添加到 Windows 上的路径

    过程大致相同,这里是官方文档:http://msdn.microsoft.com/en-us/library/windows/desktop/ms682653%28v=vs.85%29.aspx

    补充阅读和后续步骤

    This blog article will walk you through path setup, and is up to date.

    您可以查看the Getting Started guide for Cordova Android,其中详细说明了如何将必要的组件添加到您的路径中。

    设置路径后,您需要运行android 工具并安装其他工具和安卓平台(版本)。

    您的系统还需要 Apache ANT 和 java 运行时。

    请注意,这些不是 cordova 特定的要求,而是使用 SDK 进行 Android 开发的要求。

    【讨论】:

    • 我正在 Ubuntu 上开发,PATH 变量同时添加了工具和平台工具目录。从 shell 运行命令“android”可以正常工作并打开 Android SDK 管理器。此外,还安装了最新版本的 Android SDK(实际上是 4.0 之后的所有版本)。但不知何故,cordova 中的脚本无法运行该命令。
    • 我正在使用 UBUNTU 虚拟机直接研究这个问题,希望我能重现您的问题。如果您可以将错误报告发送到 github.com/phonegap/phonegap-cli/issues,我将不胜感激
    • 我忙于其他相关的 phonegap 工作,但这仍在我的待办事项清单上
    猜你喜欢
    • 2014-03-07
    • 1970-01-01
    • 2017-01-18
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    • 2017-12-26
    • 1970-01-01
    相关资源
    最近更新 更多