如何在macOS 12通过CLI安装Android模拟器
macOS 12下通过CLI安装Android模拟器完整流程
问题背景
在macOS 12系统上尝试通过命令行安装Android模拟器工具,完成OpenJDK安装并配置路径、安装android-commandlinetools后,发现预期的emulator工具并未包含在内,最终通过sdkmanager单独安装并配置路径解决问题。
1. 安装OpenJDK
使用Homebrew安装OpenJDK:
$ brew install openjdk ==> Downloading https://ghcr.io/v2/homebrew/core/openjdk/manifests/22.0.2 ####################################################################################################################################################################################### 100.0% ==> Fetching openjdk ==> Downloading https://ghcr.io/v2/homebrew/core/openjdk/blobs/sha256:84795b272691e9ee02b9a0bb9fba35552c1ae8d3b977be2468dc71e57aa4e42f Already downloaded: /Users/sebastien/Library/Caches/Homebrew/downloads/d77dda9a4f3951018aa3f9bb83beae31f635ebac5ba939d25d7278da1345ca95--openjdk--22.0.2.monterey.bottle.tar.gz ==> Pouring openjdk--22.0.2.monterey.bottle.tar.gz ==> Caveats For the system Java wrappers to find this JDK, symlink it with sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk openjdk is keg-only, which means it was not symlinked into /usr/local, because macOS provides similar software and installing this software in parallel can cause all kinds of trouble. If you need to have openjdk first in your PATH, run: echo 'export PATH="/usr/local/opt/openjdk/bin:$PATH"' >> ~/.profile For compilers to find openjdk you may need to set: export CPPFLAGS="-I/usr/local/opt/openjdk/include" ==> Summary 🍺 /usr/local/Cellar/openjdk/22.0.2: 602 files, 330MB Warning: HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK is set: not checking for outdated dependents or dependents with broken linkage!
2. 验证OpenJDK路径配置
确认Java已添加到系统路径:
$ which java /usr/local/opt/openjdk/bin/java $
3. 安装Android命令行工具
通过Homebrew安装android-commandlinetools:
$ brew install android-commandlinetools ==> Caveats Default Android SDK root is /usr/local/share/android-commandlinetools android-commandlinetools requires Java. You can install the latest version with: brew install --cask temurin ==> Downloading https://dl.google.com/android/repository/commandlinetools-mac-11076708_latest.zip ##################################################################################################################################### 100.0% ==> Installing Cask android-commandlinetools ==> Moving Generic Artifact 'cmdline-tools' to '/usr/local/share/android-commandlinetools/cmdline-tools/latest' ==> Linking Binary 'avdmanager' to '/usr/local/bin/avdmanager' ==> Linking Binary 'lint' to '/usr/local/bin/lint' ==> Linking Binary 'retrace' to '/usr/local/bin/retrace' ==> Linking Binary 'sdkmanager' to '/usr/local/bin/sdkmanager' ==> Linking Binary 'apkanalyzer' to '/usr/local/bin/apkanalyzer' ==> Linking Binary 'screenshot2' to '/usr/local/bin/screenshot2' 🍺 android-commandlinetools was successfully installed! Warning: HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK is set: not checking for outdated dependents or dependents with broken linkage!
4. 问题:未找到emulator工具
查看android-commandlinetools包含的二进制工具,发现没有emulator:
$ brew info android-commandlinetools | grep bin/ /usr/local/share/android-commandlinetools/cmdline-tools/latest/bin/avdmanager (Binary) /usr/local/share/android-commandlinetools/cmdline-tools/latest/bin/lint (Binary) /usr/local/share/android-commandlinetools/cmdline-tools/latest/bin/retrace (Binary) /usr/local/share/android-commandlinetools/cmdline-tools/latest/bin/sdkmanager (Binary) /usr/local/share/android-commandlinetools/cmdline-tools/latest/bin/apkanalyzer (Binary) /usr/local/share/android-commandlinetools/cmdline-tools/latest/bin/screenshot2 (Binary) $
5. 解决步骤:通过sdkmanager安装并配置emulator
5.1 查看可用的emulator版本
$ sdkmanager --list | grep emulator emulator | 34.2.16 | Android Emulator | emulator emulator | 34.2.16 | Android Emulator $
5.2 同意SDK许可协议
$ yes | sdkmanager --licenses > /dev/null $
5.3 安装emulator
$ sdkmanager --install emulator [=======================================] 100% Unzipping... emulator/._NOTICE.tx $
5.4 配置系统路径
先确认当前未找到emulator,然后设置Android SDK根目录并将emulator路径添加到系统PATH:
$ which emulator $ export ANDROID_SDK_ROOT=/usr/local/share/android-commandlinetools $ PATH="$ANDROID_SDK_ROOT/emulator:$PATH" $ which emulator /usr/local/share/android-commandlinetools/emulator/emulator $
内容的提问来源于stack exchange,提问作者SebMa
相关产品推荐
相关产品推荐

