ANDROID_HOME 未设置且 "android"命令不在您的 PATH Phonegap 中

标签 android node.js cordova ionic-framework

我已经安装了 android bundle,我已经在 .bashrc 文件中配置了所有内容,甚至当我在命令行中说 android 时..我正在获取 android manager ..但是当我说 ionic platform add android 时,我总是收到错误消息“错误:ANDROID_HOME 未设置且“android”命令不在您的 PATH 中。您必须至少满足其中一个条件。” .我尝试了很多方法,但问题没有解决。

我的平台:

Ubuntu 14.04 64 位

.bashrc 文件:

    export HOME="/home/system"
    export ANDROID_HOME="$HOME/adt-bundle-linux-x86_64-20140702/sdk/tools"
    export ANDROID_PLATFORM_TOOLS="$HOME/adt-bundle-linux-x86_64-20140702/sdk/platform-tools"
    export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH"
    export JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64"
    export ANT_HOME="/usr/share/ant"
    export PATH="$ANT_HOME/bin:$PATH"
    export ANDROID_HOME="/home/system/adt-bundle-linux-x86_64-20140702/sdk/tools"

执行时出错:

    system@system-H81M-S1:/usr/share/nginx/www/myApp# ionic platform add android
    npm http GET https://registry.npmjs.org/cordova-android/3.6.3
    npm http 200 https://registry.npmjs.org/cordova-android/3.6.3
    npm http GET https://registry.npmjs.org/cordova-android/-/cordova-android-3.6.3.tgz
    npm http 200 https://registry.npmjs.org/cordova-android/-/cordova-android-3.6.3.tgz
    Creating android project...

    /system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/node_modules/q/q.js:126
    throw e;
    ^
    Error: ANDROID_HOME is not set and "android" command not in your PATH. You must fulfill at least one of these conditions.
    at /system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/lib/check_reqs.js:158:19
    at _fulfilled (/system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/node_modules/q/q.js:798:54)
    at self.promiseDispatch.done (/system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/node_modules/q/q.js:827:30)
    at Promise.promise.promiseDispatch (/system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/node_modules/q/q.js:760:13)
    at /system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/node_modules/q/q.js:821:14
    at flush (/system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/node_modules/q/q.js:108:17)
    at process._tickCallback (node.js:419:13)
    at Function.Module.runMain (module.js:499:11)
    at startup (node.js:119:16)
    at node.js:906:3

    Error: /system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/
    create: Command failed with exit code 8 at ChildProcess.whenDone  (/usr/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 与最新的 android 的兼容性问题。 以及您对 android 主路径的问题。

在 .bashrc 文件中

export HOME="/home/indranil"
export ANDROID_HOME="$HOME/software/adt-bundle-linux-x86_64-20140702/sdk"
export PATH="$HOME/software/adt-bundle-linux-x86_64-20140702/sdk/tools:$ANDROID_HOME/platform_tools:$PATH"

如果您使用的是旧版本,请尝试下载最新的 android SDK。 并从您的 android 管理器下载 Android 4.4.2(API 19)。

您可以使用最新的 cordova (4.0.0),但如果问题仍然存在,则使用 cordova (3.5.0-0.2.7),但如果您想升级或降级 cordova,请使用删除现有的 cordova :-

npm uninstall -g cordova  (If linux use sudo npm uninstall -g cordova)

如果您使用的是 linux,请不要使用 须藤

安装cordoava时的commad,如果报错,执行以下命令

sudo chown -R `whoami` ~/.npm
sudo chown -R `whoami` /usr/local/lib/node_modules
sudo chown -R `whoami` /usr/local

然后不用sudo安装cordova

npm install -g cordova@3.5.0-0.2.7

在创建 ionic 应用程序和添加 android 作为平台时,不要使用 sudo 命令。 Cordova 在添加平台时在主文件夹中创建一个 .cordova 目录。在创建新的 ionic 应用程序之前删除该目录。

下载android(4.4.2)后,使用命令创建一个android虚拟设备:

android avd

关于ANDROID_HOME 未设置且 "android"命令不在您的 PATH Phonegap 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26216081/

相关文章:

Android 在一个 Activity 中创建两个对话框

javascript - 正则表达式:跳过引号内的注释

javascript - 如何使用 _bsontype 属性处理来自 mongoDB 的文档

android - Fabric SDK 报告的 Cordova App 中的 NullPointerException

android - Cordova/Phonegap 在新平板电脑上使用 Open Layers 时性能低下,但在新手机上性能良好

android - 运行 androidConnectedTest 时修复 "Couldn' t desugar invokedynamic"

Android模拟器文件读取权限

android - 发布 gradle artifact whitout source

node.js - Node js + socket io 仍然在客户端显示错误,如何修复? CentOS7

android - Chrome 32 上的 native USB 调试未检测到设备