【问题标题】:ANDROID_HOME is not set and "android" command not in your PATH PhonegapANDROID_HOME 未设置且“android”命令不在您的 PATH Phonegap 中
【发布时间】:2014-11-30 16:53:41
【问题描述】:

我已经安装了 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)

请问我该如何解决这个错误

【问题讨论】:

  • 您是以 root 身份运行它吗?也许你可以输入echo $ANDROID_HOME 你会得到一个空字符串
  • 不,我只作为普通用户运行
  • system@system-H81M-S1:~$ echo $ANDROID_HOME /home/system/adt-bundle-linux-x86_64-20140702/sdk/tools
  • system@system-H81M-S1:/usr/share/nginx/www/myApp# 对我来说,它看起来像你以 root 身份运行它
  • @blackbelt 嗨,我只在非 root 用户中工作。即使我为非 root 用户配置了相同的配置。我也在root用户中尝试过,但无论如何它都不起作用......有什么建议,比如这个错误发生在哪里?一般为什么会出现这个错误?

标签: android node.js cordova ionic-framework


【解决方案1】:

我遇到了同样的问题,已经解决了。

我认为这是最新的cordova 与最新的android 的兼容性问题。 以及您对 android home 路径的问题。

在 .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)。

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

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

【讨论】:

    【解决方案2】:

    在面对这个问题很多天后,我按照上面的说明在 MAC 上设置我的 .bash_profile

    #====================================================
    export ANT_HOME=/usr/local/Cellar/ant/1.9.4/bin/ant
    #
    export HOME="/Users/User"
    export ANDROID_HOME="$HOME/Downloads/Developer/adt-bundle-mac-x86_64-20140702/sdk"
    export PATH="$HOME/Downloads/Developer/adt-bundle-mac-x86_64-20140702/sdk/tools:$ANDROID_HOME/platform_tools:$PATH"
    #
    export JAVA_HOME=$(/usr/libexec/java_home)
    export PATH=${PATH}
    #
    export PATH=${PATH}:/Users/User/Downloads/Developer/adt-bundle-mac-x86_64-20140702/sdk/platform-tools:/Users/User/Downloads/Developer/adt-bundle-mac-x86_64-20140702/sdk/tools:/Users/User/Downloads/Developer/adt-bundle-mac-x86_64-20140702/sdk/build-tools/android-4.4W
    #
    NPM_PACKAGES="${HOME}/.npm-packages"
    PATH="$NPM_PACKAGES/bin:$PATH"
    NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"
    #
    # Unset manpath so we can inherit from /etc/manpath via the manpath
    # command
    unset MANPATH # delete if you already modified MANPATH elsewhere in your config
    MANPATH="$NPM_PACKAGES/share/man:$(manpath)"
    

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,但我找到了另一种方法,即使用Phonegap Developer App。您可以将它安装到模拟器并使用它。

      【讨论】:

        【解决方案4】:

        我也一直在努力解决这个问题(Ubuntu 14.04),我记得接受让 cordova build 命令工作对我来说太难了:-)。我确定我的 PATH 是正确的(尝试了 root 和用户等)并尝试了我能找到的所有解决方案。

        Stoicuta Alexandru On this page 的评论为我解决了这个问题。我引用:

        如果 ANDROID_HOME 没有设置,cordova 会在 home/android-sdk 中搜索

        因此,只需将我的 android sdk 放入主文件夹并(重要)将其命名为 android-sdk 即可。

        希望能为一些人节省一些时间...

        【讨论】:

        • 奇怪的是,在这样做之后我还必须'export ANDROID_HOME="/home/android-sdk' ...至少它现在可以工作了!几个小时后...
        【解决方案5】:

        在我的例子中,我首先创建了 ionic 应用程序并使用 SUDO 运行了其他 ionic 命令;这就是为什么它不工作,因为 sudo 使用根配置文件。

        我就是这样解决的:

        1. 删除 /home/user1/.cordova(将 user1 替换为您的用户名) 我使用“sudo rm”命令删除文件夹及其所有内容

        2. 我删除了 /home/user1/tmp 文件夹,这样当我们再次运行 cordova 时,它会在当前用户的适当权限下创建新的 tmp 文件夹

        3. 使用“ionic start app5”创建新应用 - 这是主要问题,因为我之前使用 sudo 进行此操作

        4. 使用“ionic platform add android”添加平台

        5. 使用“ionic run android”执行

        请记住,如果您可以从命令行运行“android”命令和“java -version”命令,那么以上是完美的解决方案。如果你们需要我的帮助,请告诉我。

        【讨论】:

        • 如果你不能运行 android 和 java 命令,请告诉我,我会帮你解决这个问题
        猜你喜欢
        • 1970-01-01
        • 2015-03-09
        • 2015-02-08
        • 2014-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-12
        • 2021-05-31
        相关资源
        最近更新 更多