macOS下zsh终端报command not found: adb配置问题排查
问题原因
从你输出的PATH内容可以直接定位问题:当前生效的ADB相关路径全部是错误路径,比正确路径多嵌套了一层/adb目录。
你在.zshrc中配置的ANDROID_HOME为/Users/aanshu/Library/Android/sdk,按配置拼接出的platform-tools路径应该是/Users/aanshu/Library/Android/sdk/platform-tools,但实际PATH中出现的ADB路径全是/Users/aanshu/Library/Android/sdk/platform-tools/adb/platform-tools、/Users/aanshu/Library/Android/sdk/platform-tools/adb/tools这类不存在的路径,说明ANDROID_HOME变量被其他位置的错误配置覆盖成了/Users/aanshu/Library/Android/sdk/platform-tools/adb,你写在.zshrc里的配置没有生效,或者被后续加载的配置覆盖。
另外PATH中重复出现3组ADB相关路径,也说明多个配置文件或者同个文件中重复追加了ADB路径配置。
修复步骤
- 清理所有错误的ADB配置
先搜索所有shell启动配置文件中的ADB相关配置,把错误的配置行全部删除,需要检查的文件包括:
可以直接执行以下命令快速定位所有相关配置行:~/.zshrc ~/.zprofile ~/.zshenv ~/.bash_profile ~/.bashrc
重点注意grep -rn "ANDROID_HOME\|platform-tools" ~/.zshrc ~/.zprofile ~/.zshenv ~/.bash_profile ~/.bashrc~/.zshenv文件,该文件在zsh启动时优先级最高,很容易存在被忽略的覆盖配置。 - 验证本地SDK实际路径
执行以下命令确认adb二进制文件的真实存放位置,验证你配置的ANDROID_HOME路径正确性:
正常返回的路径应为find /Users/aanshu/Library/Android -name "adb" -type f/Users/aanshu/Library/Android/sdk/platform-tools/adb,说明你原本写的ANDROID_HOME路径是正确的。 - 简化并修正
.zshrc中的ADB配置
把原来重复写的3行PATH追加配置合并,避免重复添加路径,保留如下内容即可:# For ADB export ANDROID_HOME=/Users/aanshu/Library/Android/sdk export PATH="$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$PATH" - 重载配置并验证
执行命令重载zsh配置:
重载后先执行source ~/.zshrcecho $ANDROID_HOME确认输出为/Users/aanshu/Library/Android/sdk,再执行adb version,如果能正常返回版本信息,说明问题修复完成。
避坑提示:如果重载配置后
ANDROID_HOME的值仍然不对,代表还有遗漏的错误配置没有清理干净,重新执行第一步的grep搜索排查即可。
内容的提问来源于stack exchange,提问作者Avinash A
相关产品推荐
相关产品推荐

