Ubuntu20无Android Studio环境下Flutter无法识别手动安装的Android SDK
Ubuntu20 无Android Studio搭建Flutter环境SDK识别失败排查方案
核心问题点
当前报错来自三个直接原因:
- SDK目录缺失核心组件:目前
$HOME/android下只有cmdline-tools和licenses目录,platform-tools(adb所在包)、build-tools、对应版本的Android平台包都未安装,提前把不存在的目录加到PATH里自然找不到adb - 冗余无效路径干扰:配置的PATH里包含
cmdline-tools/tools、cmdline-tools/tools/platform-tools这类不存在或者旧版本工具的路径,容易引发路径识别冲突 - Flutter未显式绑定SDK路径:仅配置系统环境变量可能存在Flutter读取不到的情况,需要手动指定SDK位置
解决步骤
1. 清理修正环境变量配置
编辑~/.bashrc,删除之前所有Android SDK相关的PATH配置,替换为以下内容:
export ANDROID_SDK_ROOT="$HOME/android" export ANDROID_HOME="$ANDROID_SDK_ROOT" # 仅保留有效路径,未安装的组件路径不要提前写入 export PATH="$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin" export PATH="$PATH:$ANDROID_SDK_ROOT/platform-tools"
保存后执行以下命令让配置立即生效:
source ~/.bashrc
执行完可以输入which sdkmanager确认命令行工具能被正常找到,输出路径指向$HOME/android/cmdline-tools/latest/bin/sdkmanager即为正常。
2. 删除冲突的旧版工具
目录下的cmdline-tools/tools是旧版命令行工具,和latest版本冲突,直接删除:
rm -rf $HOME/android/cmdline-tools/tools
3. 安装缺失的SDK核心组件
通过sdkmanager安装Flutter要求的必备组件,执行命令后所有许可提示都输入y回车即可:
# 更新sdkmanager自身 sdkmanager --update # 安装必备组件:platform-tools(含adb)、构建工具、Android平台包 sdkmanager "platform-tools" "build-tools;34.0.0" "platforms;android-34" # 统一接受所有SDK许可协议 sdkmanager --licenses
安装完成后执行adb version,如果能正常输出版本信息,说明adb已经安装成功。此时再查看$HOME/android目录,会多出platform-tools、build-tools、platforms三个目录。
4. 给Flutter显式指定SDK路径
执行以下命令强制Flutter绑定自定义的SDK路径,避免自动识别失败:
flutter config --android-sdk $HOME/android
5. 重新检测环境
执行flutter doctor -v,Android toolchain项的报错就会消失。如果后续需要其他版本的构建工具或者平台包,直接用sdkmanager安装对应版本即可。
额外说明
如果执行sdkmanager时报Java相关错误,先安装OpenJDK 17即可:
sudo apt update && sudo apt install openjdk-17-jdk -y
安装完不用额外配置,sdkmanager会自动识别系统Java环境。
内容的提问来源于stack exchange,提问作者Aybak3k
相关产品推荐
相关产品推荐

