mac如何设置ANDROID_SDK_ROOT?

Posted

技术标签:

【中文标题】mac如何设置ANDROID_SDK_ROOT?【英文标题】:How to set ANDROID_SDK_ROOT in mac? 【发布时间】:2017-03-07 23:49:19 【问题描述】:

我正在尝试使用 Cordova 进行应用程序开发。现在我专注于android。我正在尝试运行cordova emulate android。它运行并在一长串软件包之后说“构建成功”,但最后它也说

恐慌:找不到 AVD 系统路径。请定义ANDROID_SDK_ROOT

我使用自制软件。这是命令行上的命令输出:

BUILD SUCCESSFUL

Total time: 1.345 secs
Built the following apk(s):
    /users/mayurtolani/myMobileApp/platforms/android/build/outputs/apk/android-debug.apk

ANDROID_HOME=/usr/local/Cellar/android-sdk/24.4.1_1
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home
No emulator specified, defaulting to Nexus_5_API_24
Waiting for emulator to start...
PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT

【问题讨论】:

您是否通过自制软件安装了 Android SDK?如果是这样,请尝试here 列出的步骤。 只需安装android studio for mac,它会自动安装所有你需要的东西,而且你的avd系统路径不会有问题。 关于使用 Genymotion 模拟器并在其上安装 Google Apps,请查看 Codepath 上的 this guide。 试试答案***.com/a/39711435/2808137 【参考方案1】:
vim ~/.bash_profile

然后添加以下环境变量:

export ANDROID_HOME=~/Library/Android/sdk
export ANDROID_SDK_ROOT=~/Library/Android/sdk
export ANDROID_AVD_HOME=~/.android/avd

Android 路径可能不同,如果是这样,请相应地更改它。最后,刷新终端以应用更改:

source ~/.bash_profile

【讨论】:

这恰好对我有用,所以谢谢。但根据***.com/questions/19986214/…,它是 3 个热门地点之一 这个解决方案非常适合我。编辑文件后只需要重启你的mac @UmarAbbas Mac 不是 Windows,您不需要每 5 分钟重新启动一次...如最后所述,只需使用 source 命令 @biesior 正确,如果你每次进行一些配置时都重新启动你的 mac,你会很难过。 @RenatoDamas 最好的方法是当软件开发人员......使用他的大脑时;)可以加载很多东西而无需强制最终用户重新启动。否则,如果没有其他选项,我总是尝试的第一件事就是注销和重新启动。在大多数情况下有效。当然,如果是简单的source your-file,我们就没有这个问题。【参考方案2】:

由于您使用 Homebrew,您可以将其添加到您的路径中:

export ANDROID_SDK_ROOT=/usr/local/share/android-sdk

希望我能帮上忙! :D

【讨论】:

【参考方案3】:

我遇到了类似的问题。我已经下载了 Android SDK 和 Android Studio,所以 Android Home 有两条路径。要运行模拟器并消除 Android sdk root not set 的错误,请使用以下步骤。

    设置Android Studio下载的android sdk的路径。 如果您已经在 sdk 文件夹中下载了 SDK,请将它们复制到 Android Studio 生成的文件夹中。 /Library/Android/sdk

    设置 bash 配置文件并添加路径,如下所示。

    export ANDROID_HOME=/Users/your pc name/Library/Android/sdk
    export ANDROID_SDK_ROOT=$ANDROID_HOME
    

【讨论】:

【参考方案4】:

2021 年更新

如果您是混合 cordova/ionic/react 应用程序开发人员。这对我有用。所有其他答案都失败了。所以我正在分享我的答案

1.在你的机器上找到正确的 JAVA_HOME 路径

/usr/libexec/java_home -V

2。复制与“Java SE 8”相关的路径,通常看起来像 /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home

3.创建一个~/.bash_profile~/.zshrc 文件。在这里我使用触摸是因为我不喜欢终端中的 nano 或 vim。 touch 是一个普通的文本编辑器,我用它编辑起来更舒服。使用任何你喜欢的东西。

   touch ~/.bash_profile;
    
   touch ~/.zshrc;

4.编辑并复制/粘贴到您的 ~/.bash_profile~/.zshrc 文件中

export PATH=$PATH:$ANDROID_HOME/platform-tools  
export ANDROID_SDK_ROOT=/Users/user198559/Library/Android/sdk
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home

5.使用 file->save 保存文件,就像保存任何常规文件一样,之后在终端中写入

source ~/.bash_profile;

source ~/.zshrc;

6.通过打开新终端检查路径变量是否设置正确

echo $JAVA_HOME

/Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home

echo $ANDROID_SDK_ROOT

/Users/user198559/Library/Android/sdk

echo $ANDROID_HOME (deprecated)

(should return empty)

【讨论】:

【参考方案5】:

今天我在使用 ionic 框架时遇到了同样的问题。首先,我在 Android Studio(tools->Android) 中检查了所有设备都运行的 AVD 管理器,并且它是一个没有 api 版本的设备。所以我改变并测试了设备。然后我再次运行 ionic emulate 并且工作正常。此外,您可以使用 --target=Device_Name 来运行特定设备。

【讨论】:

【参考方案6】:

ANDROID_HOME 也是必须的,它应该和ANDROID_SDK_ROOT 一样。 仅供参考:更改.bash_profile 后,您需要重新启动Android Studio

【讨论】:

【参考方案7】:

除了 Grogu 的答案,试试这个路径。它适用于我的 M1 mac。确保您已安装 Android Studio。

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8.0)

#SDK exporting
export ANDROID_HOME=$HOME/Library/Android/sdk

#Tools exporting
export PATH=$PATH:$ANDROID_HOME/emulator:$PATH
export PATH=$PATH:$ANDROID_HOME/tools:$PATH
export PATH=$PATH:$ANDROID_HOME/tools/bin:$PATH
export PATH=$ANDROID_HOME/platform-tools:$PATH

【讨论】:

【参考方案8】:

在我的 OSX 终端中,我通过手动添加可以从 AVD 管理器的“AVD 名称”下读取的虚拟设备的名称来避免此错误。

ionic emulate android --target="AVD name"

【讨论】:

以上是关于mac如何设置ANDROID_SDK_ROOT?的主要内容,如果未能解决你的问题,请参考以下文章

模拟器不接受ANDROID_SDK_ROOT

中断的AVD系统路径。检查您的ANDROID_SDK_ROOT值

Cannot find AVD system path. Please define ANDROID_SDK_ROOT

mac 怎么安装android sdk环境

Ionic 找不到 android_sdk_root,无法在手机上构建应用程序

损坏的 AVD 系统路径。检查您的 ANDROID_SDK_ROOT 值 [c:\android-sdk]