在统信uos上搭建flutter开发环境需专为arm64架构适配jdk 17、android sdk与flutter sdk,否则flutter doctor会报“no connected devices”或“cmdline-tools missing”;须确认uname -m输出aarch64、内存≥7.5gb、uos版本≥20,并配置国产镜像源及正确路径。

在统信UOS系统上搭建Flutter开发环境,需绕过x86生态惯性依赖,专为ARM64架构适配JDK、Android SDK与Flutter主程序,否则flutter doctor会持续报错“no connected devices”或“cmdline-tools missing”。
确认系统与硬件基础
打开终端执行 uname -m,输出必须为 【aarch64】;若显示 x86_64,说明当前运行的是x86虚拟层,无法直接部署原生ARM Flutter开发链。
检查内存:运行 free -h,可用内存低于7.5GB时,Android模拟器将无法启动,建议关闭其他图形应用后再继续。
统信UOS版本必须为20+(内核≥5.10),执行 cat /etc/os-version 验证;旧版UOS缺少cgroup v2支持,会导致Docker化构建失败——但本流程不依赖Docker,可跳过此项。
安装OpenJDK 17并设为默认
统信UOS官方源默认只提供OpenJDK 11,而HarmonyOS及新版Android Gradle插件强制要求JDK 17。
执行命令下载ARM64版JDK 17:wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.1%2B12/OpenJDK17U-jdk_aarch64_linux_hotspot_17.0.1_12.tar.gz
解压到全局路径:sudo tar -xzf OpenJDK17U-jdk_aarch64_linux_hotspot_17.0.1_12.tar.gz -C /opt/
配置系统级JAVA_HOME:echo 'export JAVA_HOME=/opt/jdk-17.0.1+12' | sudo tee -a /etc/profile.d/java.sh && echo 'export PATH=$JAVA_HOME/bin:$PATH' | sudo tee -a /etc/profile.d/java.sh
重载配置:source /etc/profile.d/java.sh → 验证:java -version 输出应含 “17.0.1” 且无“not found”提示。
获取ARM64原生Flutter SDK
Flutter官方未发布ARM64 Linux预编译包,必须从社区维护的ARM适配分支拉取源码并本地构建。
方法一:克隆CFUG镜像加速的ARM64专用仓库
执行:git clone https://gitee.com/cfug/flutter.git -b stable-arm64 ~/flutter-arm64
方法二:使用已编译好的社区打包版(推荐)
下载地址:wget https://mirrors.tuna.tsinghua.edu.cn/flutter-releases/releases_arm64/stable/linux/flutter_linux_arm64_v3.19.5-stable.tar.xz
解压:tar -xf flutter_linux_arm64_v3.19.5-stable.tar.xz -C ~
【关键】解压后路径中不能含中文、空格或符号,必须为纯英文路径,例如 ~/flutter;否则后续所有flutter命令均会因路径解析失败而中断。
配置环境变量与国内镜像
编辑用户级配置:vim ~/.bashrc
在文件末尾追加三行:
export PUB_HOSTED_URL=https://pub.flutter-io.cnexport FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cnexport PATH=$HOME/flutter/bin:$PATH
保存后执行:source ~/.bashrc
验证是否生效:echo $PUB_HOSTED_URL 应输出完整URL;which flutter 应返回 【/home/用户名/flutter/bin/flutter】 路径。
安装Android开发工具链
第一步:安装Android Studio ARM64版
从官网下载 android-studio-2023.2.1.20-linux-aarch64.tar.gz(注意后缀含aarch64)→ 解压至 ~/android-studio → 运行 ~/android-studio/bin/studio.sh 启动。
第二步:首次启动时选择「Do not import settings」→「Standard」→ 安装路径保持默认(即 ~/Android/Sdk)→ 等待SDK自动下载完成。
第三步:手动补全缺失的cmdline-tools
进入 ~/Android/Sdk/cmdline-tools,创建子目录 latest → 将 tools 文件夹整体复制进去:mkdir -p ~/Android/Sdk/cmdline-tools/latest && cp -r ~/Android/Sdk/tools/* ~/Android/Sdk/cmdline-tools/latest/
第四步:配置Android环境变量
在 ~/.bashrc 中追加:export ANDROID_HOME=$HOME/Android/Sdkexport PATH=$PATH:$ANDROID_HOME/platform-tools:$ANDROID_HOME/cmdline-tools/latest
再次执行 source ~/.bashrc
运行flutter doctor并修复最后问题
执行:flutter doctor
若出现 “Android license status unknown” 错误:运行 flutter doctor --android-licenses,连续按回车接受全部协议。
若卡在 “Waiting for another flutter command to release the startup lock…”:删除锁文件 rm ~/.flutter-lock,再重试。
若提示 “No supported devices connected”,说明未启用USB调试或未安装ARM64模拟器镜像——此时先忽略,执行 flutter create myapp → cd myapp → flutter run -d chrome 即可验证核心环境可用。











