文章目录
Mac 解决 command not found: adb 问题
在 macOS 上进行 Android 开发或设备调试时,adb(Android Debug Bridge)是一个不可或缺的工具。然而,许多开发者在首次使用时会遇到如下错误:
zsh: command not found: adb
这并非 adb 本身损坏,而是系统无法找到该命令的可执行文件路径——即环境变量未正确配置。
本文将带你从根源理解问题,并提供一套通用、可靠、一劳永逸的解决方案,适用于所有现代 Mac 系统(包括搭载 Apple Silicon 芯片的 M1/M2 设备),无论你使用的是 Bash 还是 Zsh。
一、问题背景:为什么 adb 找不到?
adb 是 Android SDK Platform Tools 的一部分,通常位于:
/Users/你的用户名/Library/Android/sdk/platform-tools/
当你在终端输入 adb devices 时,系统会在一系列预设路径中查找名为 adb 的可执行程序。这些路径由环境变量 PATH 定义。
如果你没有将 platform-tools 目录添加到 PATH 中,系统自然无法识别 adb 命令,从而抛出 command not found 错误。
类比理解:就像你不把钥匙放进“常用钥匙盒”,每次出门都得翻遍抽屉一样。我们需要把
adb所在路径“注册”进系统的“钥匙盒”(即PATH)。
二、解决方案:正确配置环境变量
第一步:确认 Android SDK 安装路径
请先确认你的 Android SDK 实际安装位置。常见路径如下:
# 默认路径(Android Studio 安装)
/Users/你的用户名/Library/Android/sdk
# 自定义安装路径示例
/Users/你的用户名/Android/Sdk
如何查找?
打开 Android Studio → Preferences → Appearance & Behavior → System Settings → Android SDK → 查看 “Android SDK Location”。
记下这个路径,后续配置中需要替换 userName 为你自己的用户名。
第二步:选择合适的 Shell 配置文件
macOS 从 Catalina (10.15) 开始,默认终端 Shell 从 bash 切换为 zsh。这意味着:
.bash_profile:仅在bash会话中生效。.zshrc:zsh启动时自动加载,是当前主流配置文件。
建议策略:
无论你使用哪种方式,最终目标是让 zsh 能正确读取 adb 路径。以下是两种推荐做法。
方案一:统一管理 —— 在 .zshrc 中加载 .bash_profile
如果你已经配置了 .bash_profile,可以通过 .zshrc 引用它,实现配置复用。
1. 编辑 .bash_profile(如果尚未配置)
vim ~/.bash_profile
添加以下内容(请替换 userName 为你的实际用户名):
# 设置 Android SDK 根目录
export ANDROID_HOME=/Users/userName/Library/Android/sdk
# 将 tools 和 platform-tools 加入 PATH
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools
保存并退出(在 vim 中按 Esc,输入 :wq 回车)。
2. 编辑 .zshrc 文件
vim ~/.zshrc
在文件末尾添加一行:
# 加载 bash 配置,确保 adb 等命令可用
source ~/.bash_profile
优点:一次配置,双 shell 兼容;便于维护。
3. 使配置立即生效
source ~/.zshrc
方案二:原生支持 Zsh —— 直接写入 .zshrc
如果你偏好纯粹使用 zsh,不依赖 .bash_profile,可以直接将环境变量写入 .zshrc。
vim ~/.zshrc
添加以下内容:
# Android SDK 环境变量配置
export ANDROID_HOME=/Users/userName/Library/Android/sdk
export PATH=${PATH}:${ANDROID_HOME}/tools
export PATH=${PATH}:${ANDROID_HOME}/platform-tools
保存后执行:
source ~/.zshrc
优点:配置独立,避免跨 shell 依赖,更符合现代 Mac 使用习惯。
注意事项
- 路径准确性:务必确保
ANDROID_HOME指向正确的 SDK 目录。 - 文件权限:通常无需修改权限,但如果遇到问题,可运行:
chmod 644 ~/.zshrc ~/.bash_profile - 符号链接替代方案(高级):
你也可以将adb软链接到/usr/local/bin(系统默认路径之一):
但此方法不利于管理多个 SDK 工具,推荐优先使用环境变量方式。sudo ln -s /Users/userName/Library/Android/sdk/platform-tools/adb /usr/local/bin/adb
三、验证配置是否成功
重新打开一个新的终端窗口(重要!旧窗口可能未加载新配置),输入:
adb version
预期输出类似:
Android Debug Bridge version 1.0.41
再运行:
adb devices
如果看到设备列表(或提示“List of devices attached”),说明配置完全成功!
成功标志:命令可在任意目录下执行,无需进入
platform-tools文件夹。
四、常见问题与排查
| 问题 | 可能原因 | 解决方法 |
|---|---|---|
command not found: adb | .zshrc 未生效 | 检查是否执行了 source ~/.zshrc |
adb: Permission denied | 文件无执行权限 | 运行 chmod +x adb |
adb devices 无响应 | 设备未开启 USB 调试 | 检查手机设置 → 开发者选项 → USB调试 |
| 终端启动慢 | .zshrc 中有阻塞命令 | 移除不必要的同步操作 |
五、进阶建议:提升配置健壮性
1. 使用 ~/.zprofile(登录时加载)
对于仅在登录时需要加载的环境变量,可以使用 ~/.zprofile 替代 ~/.zshrc,避免每次打开新终端都重复执行。
vim ~/.zprofile
写入与 .zshrc 相同的 export 内容即可。
适用场景:系统级环境变量(如
JAVA_HOME,ANDROID_HOME)
2. 添加命令别名(可选)
为常用命令设置别名,提高效率:
# 在 ~/.zshrc 中添加
alias adbl='adb logcat'
alias adbs='adb shell'
alias adbr='adb reverse tcp:8081 tcp:8081'
刷新后即可使用简写命令。
六、总结:一份配置,终身受用
| 步骤 | 操作 |
|---|---|
| 1 | 确认 SDK 安装路径 |
| 2 | 编辑 ~/.zshrc 或 ~/.zprofile |
| 3 | 添加 ANDROID_HOME 与 PATH 配置 |
| 4 | 执行 source 使配置生效 |
| 5 | 新终端中运行 adb version 验证 |
核心要点:
- macOS 默认使用
zsh,应优先配置.zshrc或.zprofile。.bash_profile不再是默认加载文件,仅对bash有效。- 通过
source ~/.bash_profile可实现兼容,但直接写入.zshrc更简洁。
附录:配图参考(建议插入图文教程)
提示:建议将本文收藏为团队 Wiki 或个人备忘录,避免重复踩坑。
现在,你的 Mac 已经准备好迎接每一次 adb 调试之旅。告别 command not found,高效开发,从此刻开始!
5407

被折叠的 条评论
为什么被折叠?



