找不到“ANDROID_HOME”环境变量

Posted

技术标签:

【中文标题】找不到“ANDROID_HOME”环境变量【英文标题】:Failed to find 'ANDROID_HOME' environment variable 【发布时间】:2016-07-11 22:10:49 【问题描述】:

我正在尝试构建一个 ionic-android 项目,并且我已经安装了 android sdk。

我的项目名称是myApp。我已成功将android平台添加到myApp。但是当我尝试构建项目时

~/myApp$ sudo ionic build android

结果是

Running command: /home/hari/myApp/hooks/after_prepare/010_add_platform_class.js /home/hari/myApp
  add to body class: platform-android
  ERROR building one of the platforms: Failed to find 'ANDROID_HOME'  environment variable. Try setting setting it manually.
  Failed to find 'android' command in your 'PATH'. Try update your 'PATH' to include path to valid SDK directory.
You may not have the required environment or OS to build this project
Error: Failed to find 'ANDROID_HOME' environment variable. Try setting setting it manually.
Failed to find 'android' command in your 'PATH'. Try update your 'PATH' to include path to valid SDK directory.

查看 ANDROID_HOME 和 PATH 变量

echo $ANDROID_HOME
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/hari/Android/Sdk

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/hari/Android/Sdk/tools:/home/hari/Android/Sdk/platform-tools:/usr/local/bin:/opt/gradle/bin

我见过几乎相同类型的堆栈溢出问题,但没有一个对我有用。我的 android-sdk 配置有什么问题吗?我该如何构建这个项目?

【问题讨论】:

您的 ANDROID_HOME 看起来更像一个 PATH。当你回显时,它应该只返回/home/hari/Android/Sdk(假设这是正确的) 查看我对 [此问题](***.com/questions/35110403/…) 的回答,它会为您解决问题 每次打开终端都要输入这个,怎么持久化? @LukeFlournoy 查看this answer 的“先验事项”(第 1 步和第 2 步) 【参考方案1】:

您可能需要确认您的开发环境已正确设置。

引用spring.io:

设置 Android 开发环境

在构建 Android 应用程序之前,您必须安装 安卓 SDK。安装 Android SDK 也会安装 AVD Manager, 用于创建和管理 Android Virtual 的图形用户界面 设备 (AVD)。

    从Android web site,下载 适用于您的操作系统的正确版本的 Android SDK。

    将存档解压缩到您选择的位置。例如,在 Linux 或 Mac 上,您可以将其放在用户目录的根目录中。看 Android Developers 网站了解更多安装细节。

    根据 Android SDK 的位置配置 ANDROID_HOME 环境变量。此外,考虑添加 ANDROID_HOME/toolsANDROID_HOME/platform-tools 到您的 PATH。

Mac OS X

export ANDROID_HOME=/<installation location>/android-sdk-macosx
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

Linux

export ANDROID_HOME=/<installation location>/android-sdk-linux
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

窗口

set ANDROID_HOME=C:\<installation location>\android-sdk-windows
set PATH=%PATH%;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools

Android SDK 下载不包括特定的 Android 平台。 要运行本指南中的代码,您需要下载并安装 最新的 SDK 平台。您可以使用 Android SDK 和 AVD 您在上一节中安装的管理器。

    打开 Android SDK 管理器窗口:

    android
    

    注意:如果该命令没有打开Android SDK Manager, 那么你的路径配置不正确。

    选中工具复选框。

    选中最新的 Android SDK 的复选框。

    Extras 文件夹中,选中 Android 支持库 的复选框。

    点击Install packages...按钮完成下载和安装。

    注意:您可能想要安装所有可用的更新,但要 请注意,这将需要更长的时间,因为每个 API 级别的下载量都很大。

【讨论】:

in no 3(配置 ANRDOID_HOME 变量):这应该在哪个文件中? @suMi 您根据您的操作系统从终端运行导出命令,并根据您保存 SDK 的位置更改您设置的 ANDROID_HOME 等于的 PATH。有关详细信息,请参阅***.com/questions/19986214/…。 @suMI 如果您希望永久更改,如果您使用的是 linux 或 mac,请将这些行添加到您的 .bashrc 中。 如果有人从 teamcity 构建时遇到此问题,您需要在 teamcity 上为 ANDROID_HOME 创建环境参数。 /android-sdk-linuxtoolsplatform-tools 是什么?我在/opt/android-studio 中没有看到这样的目录。我的 android Studio 正在运行,但我没有那些目录。【参考方案2】:

在 Linux 中

首先在 .bashrc 文件中设置 ANDROID_HOME

运行命令

sudo gedit ~/.bashrc

设置你安装的andoid sdk路径

export ANDROID_HOME=/opt/android-sdk-linux 
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

重新加载文件运行命令

source ~/.bashrc

现在检查安装的平台,运行命令

ionic platform

输出

Installed platforms:
  android 6.0.0
Available platforms: 
  amazon-fireos ~3.6.3 (deprecated)
  blackberry10 ~3.8.0
  browser ~4.1.0
  firefoxos ~3.6.3
  ubuntu ~4.3.4
  webos ~3.7.0

如果已经安装了android,则需要删除并重新安装

ionic platform rm android
ionic platform add android

如果尚未安装,请添加android平台

ionic platform add android

请确保您添加了没有 sudo 命令的 android 平台

如果您在添加 android 平台时仍然遇到错误,如下所示

错误:EACCES:权限被拒绝,打开 '/home/ubuntu/.cordova/lib/npm_cache/cordova-android/6.0.0/package/package.json'

请到 /home/ubuntu/ 并从那里删除 .cordova 文件夹

cd /home/ubuntu/
sudo rm -r .cordova

现在再次运行以下命令

ionic platform add android

成功添加平台后,您将能够在 ionic 中构建 Android。

谢谢

【讨论】:

从 3.0.0 版开始是ionic cordova platform add android【参考方案3】:

您需要遵循以下步骤才能成功设置您的 Ionic 项目以使用 android 模拟器:

    创建一个 Ionic 项目:离子启动 appName 选项卡(用于选项卡主题) cd 应用名称 离子设置 sass 要在网络上启动应用程序:ionic serve

添加安卓平台:

先验

首先您需要设置环境变量。为此,您需要考虑 3 个文件:

1. ~/.profile(用于在每次终端打开或计算机启动时设置变量):

//最后需要附加的代码

set PATH so it includes user's private bin directories
PATH="$HOME/bin:$HOME/.local/bin:$PATH"
export ANDROID_HOME='/home/<user_name>/Android/Sdk' <Path to android SDK>
export PATH=$PATH:$ANDROID_HOME/bin
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools

2。 /etc/environment(设置环境变量):

//文件的所有内容

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
JAVA_HOME="/usr/lib/jvm/java-8-oracle"
ANDROID_HOME="/home/<user_name>/Android/Sdk" <Path to android SDK>

3. /etc/profile

//最后需要添加的代码

JAVA_HOME=/usr/lib/jvm/java-8-oracle <Path where Java is installed>
JRE_HOME=$JAVA_HOME/jre 
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME
export JRE_HOME
export PATH

要加载对文件所做的上述更改,您需要运行以下命令:

source ~/.profile
source /etc/environment
source /etc/profile

后世事物

1.添加平台:ionic platform add android(注意此命令需要不带sudo运行)

2.如果您在上述命令中仍然遇到错误,请执行以下操作:(此处 appName = helloWorld)

    cd ..
    sudo chmod -R 777 helloWorld
    cd helloWorld 
    ionic platform add android
    If you are still getting the error then remove ".cordova" folder from the home directory of your PC.

3. 要在您的 android 模拟器中运行应用程序:ionic run android

谢谢!

【讨论】:

谢谢 Nikhil,它也对我有用。在尝试了很多事情之后 - 它与您提供的上述步骤一起工作:-) 在将 Java 和 android 变量添加到 /etc/environment 后,我​​最终遇到了“登录循环”问题。幸运的是,我能够从终端登录(ctrl+alt+F3)中删除它,现在登录正常了。【参考方案4】:

我之前遇到过这个问题。 您需要将sdks\toolssdks\build-tools 添加到您的环境路径中。

【讨论】:

【参考方案5】:

对于那些在 Windows 上拥有便携式 SDK 版本的用户,只需将以下 2 个路径添加到您的系统。

F:\ADT_SDK\sdk\platforms
F:\ADT_SDK\sdk\platform-tools

这对我有用。

【讨论】:

我想知道为什么我的回答被否决了。有没有可能有这个动作的原因? 因为你没有说如何添加它们? 没错,您没有指定如何执行该过程。【参考方案6】:

2019 年 4 月 11 日

以上答案都没有解决我的问题,所以我想为使用 Ubuntu 18.04 的人提供一个当前的解决方案(截至 2019 年 4 月)。这就是我解决上述问题的方法......

    I installed the Android SDK from the website, 并将其放在此文件夹中:/usr/lib/Android/

    搜索 SDK 的安装位置和版本。就我而言,它在这里:

    /usr/lib/Android/Sdk/build-tools/28.0.3

    注意:我使用的是 28.0.3 版本,您的版本可能不同。

    ANDROID_HOME 添加到环境路径。为此,请使用文本编辑器打开 /etc/environment:

    sudo nano /etc/environment

    为您的特定版本和路径添加ANDROID_HOME 行。在我的情况下是:

    ANDROID_HOME="/usr/lib/Android/Sdk/build-tools/28.0.3"

    最后,通过source /etc/environment获取更新的环境

    通过在终端中尝试:echo $ANDROID_HOME 来确认这一点。你应该得到你新创建的变量的路径。

    关于采购的另一个注意事项是,我确实必须重新启动计算机才能让 VScode 终端识别我的更改。重新启动后,环境设置好了,从那以后我没有任何问题。

【讨论】:

关键字:重启【参考方案7】:

执行:sudo gedit ~/.bashrcadd

JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JAVA_HOME
PATH=$PATH:$JAVA_HOME
export PATH
export ANDROID_HOME=~/Android/Sdk 
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

source ~/.bashrc

【讨论】:

【参考方案8】:

我想分享一个答案,该答案还演示了使用 Ubuntu 存储库提供的 Android SDK 的方法:

安装 Android SDK

sudo apt-get install android-sdk

导出环境变量

export ANDROID_HOME="/usr/lib/android-sdk/"
export PATH="$PATH:$ANDROID_HOMEtools/:$ANDROID_HOMEplatform-tools/"

【讨论】:

【参考方案9】:

要在 ubuntu 20.04 上设置 ANDROID_HOME 环境,请访问 Ubuntu 的 snap store 并安装 Android studio 然后打开

vim $HOME/.bashrc

并设置环境变量如下:

export ANDROID_HOME=$HOME/Android/Sdk
export PATH=$ANDROID_HOME/tools:$PATH
export PATH=$ANDROID_HOME/emulator:$PATH
export PATH=$ANDROID_HOME/platform-tools:$PATH

使用最新版本的 Android Studio 将 ANDROID_HOME 替换为 ANDROID_SDK_ROOT 否则构建会抱怨 ANDROID_HOME 已弃用。

【讨论】:

【参考方案10】:

从谷歌来到这里寻找相同的问题并浪费了 4 个小时来找出可能出了什么问题。现在我在发布这个答案时感到非常愚蠢。在我的例子中,SDK、JDK、JRE、Ant 和其他所有东西都是在前一天安装​​并运行的。

但是只有一个特定的项目给了我这个问题。这个位于 “C:\Users\Name\Documents” 位置

很快我意识到我是以普通用户身份运行 cmd,只要我选择“以管理员身份运行”,一切都开始工作了。

提示:始终仔细考虑项目位置!

【讨论】:

【参考方案11】:

这解决了我的问题。将以下添加到您的系统路径

PATH_TO_android\platforms

PATH_TO_android\platform-tools

【讨论】:

【参考方案12】:

我在 windows7 计算机上遇到了这个问题:运行 ionic serve 时计算机关闭(我假设这是破坏一切的问题)

完全删除节点并在新的节点副本上重新安装所有内容

【讨论】:

【参考方案13】:

在 Windows 中,如果您从 VS 代码终端运行此命令,并且即使在设置了所有环境变量(即构建工具、平台工具、工具)之后,尝试从外部 cmd 终端运行相同的命令也无法正常工作. 就我而言,即使在启动新的 VS 代码终端后,它也无法采用更新后的环境路径。

当我从 Windows cmd 运行相同的命令时它起作用了。

【讨论】:

【参考方案14】:

我在 MAC catalina 10.15 上遇到了同样的问题,当您在终端上回显时,无法识别您在 .bash_profile 中添加的内容,它是临时存储的。建议永久使用 .zprofile 并在其中添加所有环境变量。尝试 5 小时后,我找到了这个解决方案。希望它对某人有用。

 vi .zprofile
 insert(press i)

export ANDROID_HOME=/Users/mypc/Library/Android/sdk
export PATH=$ANDROID_HOME/platform-tools:$PATH

after adding environment variables press esc
then enter :wq!
try echo $ANDROID_HOME in new tab(it will not be empty) path will be 
printed

【讨论】:

【参考方案15】:

花了将近几个小时没有睡觉搜索所有内容以在我的android设备上安装apk进行调试,但由于ADP ENONET而无法安装apk。

"adb reverse": spawnSync Users/shanu/Library/Android/sdk/platform-tools/adb ENOENT

解决方案非常简单,字面意思,我已经在.bash_profile, .zshrc, environment, ~/.profile 等中添加了变量,几乎尝试了所有解决方案但无法解决。

这个错误很小。

而不是像这样(正确)在我的 bash_profile 文件中添加。

   export ANDROID_HOME=/Users/shanu/Library/Android/sdk
   export PATH=$PATH:/Users/shanu/Library/Android/emulator
   export PATH=$PATH:/Users/shanu/Library/Android/sdk/tools
   export PATH=$PATH:/Users/shanu/Library/Android/sdk/tools/bin
   export PATH=$PATH:/Users/shanu/Library/Android/sdk/platform-tools

我正在添加类似这样的内容,这在我的情况下是错误的。

  export ANDROID_HOME=Users/shanu/Library/Android/sdk
  export PATH=$PATH:$ANDROID_HOME/emulator
  export PATH=$PATH:$ANDROID_HOME/tools
  export PATH=$PATH:$ANDROID_HOME/tools/bin
  export PATH=$PATH:$ANDROID_HOME/platform-tools

可能会有所帮助:在 package.json 内部添加这样的 yarn android 命令

"android": "source ~/.bash_profile&&react-native run-android"

【讨论】:

【参考方案16】:

按照其他答案中的建议更新路径和环境变量后,有时您只需重新启动计算机即可。我花了 24 多小时才用完所有选项并重新启动。

【讨论】:

【参考方案17】:

我也遇到了同样的问题,我就是这样解决的。

打开终端

cd 到 eclipse.app 所在的文件夹 E.g cd /Users/Shared/eclipse/jee-2020-09

输入open Eclipse.app/

Eclipse 现在将打开,并且还可以访问系统环境变量。

使用代码检查:

System.getenv().forEach((k, v) -> 
    System.out.println("ENV : " + k + ":" + v);
);

【讨论】:

以上是关于找不到“ANDROID_HOME”环境变量的主要内容,如果未能解决你的问题,请参考以下文章

Ionic android 构建错误 - 找不到“ANDROID_HOME”环境变量

Meteor - 安装 android 平台找不到 ANDROID_HOME 变量

找不到adb请设置ANDROID_HOME异常 - Visual Studio

Android_home配置环境变量

在mac中设置ANDROID_HOME环境变量

SDK位置未找到 - Android Studio