Android cmdline-tools缺失及sdkmanager路径问题求助
解决Android cmdline-tools缺失且sdkmanager无法执行问题
问题概况
- 执行
flutter doctor时提示错误:✗ cmdline-tools component is missing Run `path/to/sdkmanager --install "cmdline-tools;latest"` - 尝试执行安装命令时,收到zsh错误:
zsh: no such file or directory: path/to/sdkmanager - 已完成的排查:确认sdkmanager路径正确、检查SDK目录组件、验证路径格式拼写、在目标目录下执行命令,均未解决问题
- 运行环境:macOS 13.3.1、OpenJDK 17.0.6、Flutter 3.10.0、Android Studio 2022.2
解决方案步骤
1. 定位真实Android SDK根目录
当前flutter doctor识别的SDK路径仅为platform-tools目录(/Users/mishalhaneef/homebrew/Caskroom/android-platform-tools/34.0.1),并非完整SDK根目录。需通过Android Studio获取正确路径:
- 打开Android Studio,进入
Settings→Appearance & Behavior→System Settings→Android SDK - 复制
Android SDK Location对应的路径,这才是完整的SDK根目录
2. 确认sdkmanager的正确路径
完整SDK根目录下,sdkmanager的标准路径为:
{SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager
若该路径下无sdkmanager文件,需先准备cmdline-tools包:
- 将下载的cmdline-tools压缩包解压到
{SDK_ROOT}/cmdline-tools目录,确保目录结构为{SDK_ROOT}/cmdline-tools/latest/bin/...
3. 执行正确的安装命令
- 切换到sdkmanager所在目录:
cd {SDK_ROOT}/cmdline-tools/latest/bin - 执行安装命令:
./sdkmanager --install "cmdline-tools;latest"
4. 配置环境变量
编辑~/.zshrc文件,添加以下环境变量(替换{SDK_ROOT}为真实路径):
export ANDROID_HOME={SDK_ROOT} export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin export PATH=$PATH:$ANDROID_HOME/platform-tools
保存后执行source ~/.zshrc使配置生效,之后可直接在终端调用sdkmanager
5. 验证修复效果
- 执行
flutter doctor --android-licenses接受所有Android SDK许可协议 - 再次运行
flutter doctor,确认Android toolchain部分的错误已修复
内容的提问来源于stack exchange,提问作者mishalhaneef
相关产品推荐
相关产品推荐

