找不到“ ANDROID_HOME”环境变量


131

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

SDK Manager安装的软件包

我的项目名为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配置有问题吗?我如何建立这个项目?


2
您的ANDROID_HOME看起来更像是一个PATH。当您回声时,它仅应返回/home/hari/Android/Sdk(假定是正确的)
OneCricketeer

请参阅我对[This Question](stackoverflow.com/questions/35110403/…)的回答,它将为您解决
Ramy hakam

每次打开终端时都必须输入此密码,该如何保存?
路加·弗卢诺

@LukeFlournoy请参阅此答案
Diego Somar,

Answers:


199

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

引用spring.io

设置Android开发环境

必须先安装Android SDK,然后才能构建Android应用程序。安装Android SDK还会安装AVD Manager,这是用于创建和管理Android虚拟设备(AVD)的图形用户界面。

  1. Android网站上,为您的操作系统下载正确版本的Android SDK。

  2. 将档案解压缩到您选择的位置。例如,在Linux或Mac上,您可以将其放在用户目录的根目录中。有关 其他安装详细信息,请参见Android Developers网站。

  3. ANDROID_HOME根据Android SDK的位置配置环境变量。此外,考虑将ANDROID_HOME/tools和添加 ANDROID_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 Manager来执行此操作。

  1. 打开“ Android SDK Manager”窗口:

    android

    注意:如果此命令未打开Android SDK Manager,则您的路径配置不正确。

  2. 选择工具复选框。

  3. 选择最新的Android SDK的复选框。

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

  5. 单击安装软件包...按钮以完成下载和安装。

    注意:您可能需要安装所有可用的更新,但是请注意,由于每个API级别都是大量下载,因此更新将花费更长的时间。


1
在否3中(配置ANRDOID_HOME变量):这应该在哪个文件中?
suMi '16

@suMi,您可以根据操作系统从终端运行export命令,并ANDROID_HOME根据保存SDK的位置更改等于的PATH 。有关更多详细信息,请参见stackoverflow.com/questions/19986214/…
布拉德W

@suMI如果要永久保留更改,请在Linux或Mac上将这些行添加到.bashrc中。
brt

如果有人从teamcity遇到此问题,则需要在teamcity上为ANDROID_HOME创建env参数。
lawphotog

那是什么/android-sdk-linuxtoolsplatform-tools?我的找不到这样的目录/opt/android-studio。我的android Studio正在运行,但我没有这些目录。
Dzintars

38

在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 platfrom时遇到错误,如下所示

错误: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中构建类机器人。

谢谢


14
从3.0.0版本开始ionic cordova platform add android
鲍米

28

这些是您需要遵循的步骤,以成功设置Ionic Project以便与android模拟器一起使用:

  1. 创建一个离子项目:离子启动appName选项卡(用于选项卡主题)
  2. cd appName
  3. 离子设置
  4. 要在网络上启动该应用:离子服务

添加android平台:

先验的事情

首先,您需要设置环境变量。为此,您需要考虑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

Posteori事情

1.添加平台:离子平台添加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运行android

谢谢!


感谢Nikhil,它也对我有用。在尝试了很多事情之后,它可以与您提供的上述步骤一起使用:-)
Rajeev Jayaswal

在将Java和android变量添加到/ etc / environment之后,我最终遇到了“登录循环”问题。幸运的是,我能够从终端登录名(ctrl + alt + F3)中删除该登录名,现在登录正常。
哈里

8

对于在Windows上具有可移植SDK版本的用户,只需将以下2条路径添加到您的系统。

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

这对我有用。


我不知道为什么我的答案被否决了。是否可能有此操作的原因?
BoCyrill '16

2
因为您不是在说如何添加它们?
弗洛里安·劳特巴赫

1
确实,您没有指定如何执行该过程。
Anuj


5

执行:sudo gedit ~/.bashrc 添加

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

5

2019年4月11日

上面的答案都没有解决我的问题,因此我想为使用Ubuntu 18.04的用户提供最新的解决方案(截至2019年4月)。这就是我解决上述问题的方法...

  1. 我从网站安装了Android SDK,并将其放在以下文件夹中:/usr/lib/Android/
  2. 搜索SDK的安装位置和版本。就我而言,它在这里:

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

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

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

    sudo nano /etc/environment

    ANDROID_HOME为您的特定版本和路径添加一行。以我为例:

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

  4. 最后,使用以下命令获取更新的环境: source /etc/environment

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

    关于采购的另一条注释,我确实必须重新启动计算机以使VScode终端能够识别我的更改。重新启动后,环境已设置好,此后我再也没有任何问题。


2

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

安装Android SDK

sudo apt-get install android-sdk

导出环境变量

export ANDROID_HOME="/usr/lib/android-sdk/"
export PATH="${PATH}:${ANDROID_HOME}tools/:${ANDROID_HOME}platform-tools/"

1

从Google来到这里寻找相同的问题,并浪费了4个小时才弄清楚可能出了什么问题。现在,我在发布此答案时感到非常愚蠢。就我而言,SDK,JDK,JRE,Ant和其他所有东西都已安装并且可以在一天前运行。

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

很快,我意识到我以普通用户身份运行cmd,一旦选择“ 以管理员身份运行 ”,一切便开始起作用。

提示:请务必仔细考虑项目位置!


1

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

PATH_TO_android \ platforms

PATH_TO_android \ platform-tools


0

我在Windows7计算机上遇到此问题:离子服务运行时计算机关闭(我假设这是损坏所有计算机的问题)

完全删除节点,然后将所有内容重新安装在新的节点副本上


0

在Windows中,如果您是从VS代码终端运行此命令的,即使设置了所有环境变量(即,build-tools,platform-tools,tools),尝试从外部cmd终端运行相同的命令也无法正常工作。就我而言,即使启动了新的VS代码终端,它也无法采用更新的Environment路径。

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


0

要在ubuntu 20.04上设置ANDROID_HOME环境,请访问Ubuntu的快照存储并安装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工作室的版本替换ANDROID_HOMEANDROID_SDK_ROOT否则构建将抱怨ANDROID_HOME已被弃用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.