前言

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net

说到环境搭建,很多人觉得这是"体力活",没什么技术含量。但在Flutter-OHOS开发中,环境搭建可能是最考验耐心的环节。我第一次配这套环境的时候,前前后后折腾了将近一周,各种版本不兼容、路径配错、SDK下载失败…现在回想起来都头疼。

为什么这么难?三个原因:

  1. 工具链还在快速迭代:Flutter-OHOS的SDK几乎每个月都有更新,文档经常跟不上
  2. 依赖关系复杂:DevEco Studio、OpenHarmony SDK、Flutter-OHOS SDK三者之间有版本对应关系,搞错一个就全盘皆输
  3. 网络环境影响大:很多依赖需要从GitHub下载,国内网络环境你懂的

好在踩完坑之后,我总结出了一套相对稳定的配置方案。今天就把这些经验分享出来,争取让大家一次搞定。

💡 版本锁定:本文所有步骤基于DevEco Studio 6.0.2 Release + Flutter-OHOS 3.35.7-dev + OpenHarmony SDK API 20。如果你用其他版本,部分细节可能不同。

一、DevEco Studio 安装与配置

1.1 下载与安装

DevEco Studio是华为出品的OpenHarmony集成开发环境,底层基于IntelliJ IDEA。用过Android Studio的同学会觉得很熟悉,但细节上有不少差异。

下载地址DevEco Studio 6.0.2 Release

系统要求:

操作系统 最低版本 推荐配置 我的建议
Windows Windows 10 64-bit Windows 11 Win11兼容性最好
macOS macOS 10.15 macOS 12+ 我主力用Mac,体验不错
Linux Ubuntu 18.04 Ubuntu 20.04+ 服务器环境推荐

安装过程没什么特别的,但有几个点要注意:

# macOS安装
# 方式一:直接拖到Applications
# 方式二:命令行安装
sudo installer -pkg DevEco-Studio-6.0.2.600.pkg -target /

# Windows安装
# 双击exe运行即可
DevEco-Studio-6.0.2.600.exe

🤦 踩坑提醒:安装路径千万不要包含中文或空格!我第一次就是装在了"华为开发工具"这个目录下,结果编译时各种莫名其妙的错误。后来换成纯英文路径就好了。

1.2 初始配置向导

首次启动DevEco Studio会进入配置向导,界面和Android Studio很像:

请添加图片描述

图:DevEco Studio首次启动配置向导

配置步骤:

  1. 用户协议:同意华为开发者协议
  2. 安装类型:选"Standard"就行,Custom模式除非你很清楚自己在干什么
  3. UI主题:Darcula(暗色)或IntelliJ Light(亮色),我选Darcula,晚上写代码对眼睛友好
  4. SDK配置:这一步很关键,确保勾选了OpenHarmony SDK

1.3 OpenHarmony SDK Manager配置

打开 File → Settings → HarmonyOS SDK(macOS是 DevEco Studio → Preferences → HarmonyOS SDK):

SDK Location: /Users/yourname/Library/Huawei/Sdk  (macOS默认路径)
             C:\Users\yourname\AppData\Local\Huawei\Sdk  (Windows默认路径)

需要安装的SDK组件:

组件 大小 是否必需 说明
OpenHarmony SDK API 20 ~2GB ✅ 必需 基础开发包
Native SDK ~1GB ✅ 必需 原生开发工具链
Previewer ~800MB ⚠️ 建议安装 UI预览器
Toolchains ~500MB ✅ 必需 编译工具链

📌 磁盘空间:全部装完大概需要5-6GB。加上后面的Flutter SDK,建议至少预留100GB可用空间。

1.4 Node.js 与 ohpm 配置

DevEco Studio依赖Node.js和ohpm(OpenHarmony Package Manager):

# 检查Node.js版本(DevEco Studio通常自带)
node -v
# 建议 v16.x 或 v18.x

# 检查ohpm
ohpm -v
# 应该输出版本号

# 如果ohpm命令找不到,需要配置环境变量
# macOS
export PATH=$PATH:/Users/yourname/Library/Huawei/ohpm/bin

# Windows
# 在系统环境变量PATH中添加:C:\Users\yourname\AppData\Local\Huawei\ohpm\bin

二、Flutter-OHOS SDK 环境搭建

2.1 获取Flutter-OHOS SDK

这是整个环境搭建中最关键的一步。Flutter-OHOS是Flutter的OpenHarmony适配版本,由开源鸿蒙社区维护。

# 克隆Flutter-OHOS仓库
git clone https://gitcode.com/openharmony-tpc/flutter_flutter

# 切换到指定版本
cd flutter-ohos
git checkout 3.35.7-dev

# 查看当前版本
git log --oneline -5

⚠️ 重要:一定要用3.35.7-dev这个tag,不要用main分支。main分支可能包含未经充分测试的代码,我之前用main分支编译出过好几次诡异的bug。

2.2 配置环境变量

这一步配错了后面全白搭:

# macOS / Linux - 编辑 ~/.zshrc 或 ~/.bashrc
export FLUTTER_HOME=/path/to/flutter-ohos
export PATH=$FLUTTER_HOME/bin:$PATH

# 让配置生效
source ~/.zshrc

# Windows - 在系统环境变量中设置
# FLUTTER_HOME = C:\path\to\flutter-ohos
# PATH 中添加 %FLUTTER_HOME%\bin

配置完成后验证:

# 检查Flutter版本
flutter --version

# 预期输出类似:
# Flutter 3.35.7-dev • channel ohos
# Framework • revision xxxxx
# Engine • revision xxxxx
# Tools • Dart 3.4.0 • DevTools 2.34.3

2.3 Flutter Doctor 全面检查

这是验证环境的终极命令

flutter doctor -v

理想的输出应该是这样的:

[✓] Flutter (Channel ohos, 3.35.7-dev)
    • Flutter version 3.35.7-dev
    • Dart version 3.4.0
    • DevTools version 2.34.3

[✓] Android toolchain - develop for Android devices
    • Android SDK at /Users/yourname/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0

[✓] OpenHarmony toolchain - develop for OpenHarmony devices
    • OpenHarmony SDK at /Users/yourname/Library/Huawei/Sdk
    • API version 20

[✓] Chrome - develop for the web
[✓] VS Code (version 1.85.1)
[✓] Connected device (2 available)
[!] No issues found!

😅 现实情况:第一次跑flutter doctor,大概率不会全绿。我当时OpenHarmony toolchain那一项是红叉,折腾了两个小时才搞定。常见问题和解决方案往下看。

三、OpenHarmony SDK API20 配置

3.1 API版本选择的重要性

为什么一定要用API 20?因为Core Speech Kit在API 20才比较完善。我试过API 19,语音识别的部分接口还没有,根本没法用。

API版本 Core Speech Kit 推荐度
API 18 ❌ 不支持 不推荐
API 19 ⚠️ 部分支持 不推荐
API 20 ✅ 完整支持 ✅ 推荐

3.2 SDK目录结构

安装完成后,OpenHarmony SDK的目录结构大概是这样的:

Sdk/
├── openharmony/
│   ├── 20/                    # API 20
│   │   ├── ets/               # ArkTS相关
│   │   ├── js/                # JS相关
│   │   ├── native/            # 原生开发
│   │   └── toolchains/        # 工具链
│   └── licenses/              # 许可证
├── hmscore/                   # HMS Core
└── ohpm/                      # 包管理器

3.3 Core Speech Kit 确认

确认Core Speech Kit已经包含在SDK中:

# 检查SDK中是否包含Speech Kit相关文件
ls $OHOS_SDK_HOME/openharmony/20/ets/api/@ohos.ai.speechRecognizer.d.ts

# 如果文件存在,说明Core Speech Kit已就绪

在代码中可以通过能力检测来确认设备是否支持:

// 运行时检测设备能力
if (!canIUse('SystemCapability.AI.SpeechRecognizer')) {
  console.error('当前设备不支持语音识别');
  return;
}

四、ROM 版本要求与真机准备

4.1 ROM版本要求

OpenHarmony真机的ROM版本直接影响API的可用性:

ROM版本 对应API 语音识别支持 建议
5.0.x API 12-16 需要升级
6.0.0.100 API 18-19 ⚠️ 部分 建议升级
6.0.0.130 SP8 API 20 ✅ 完整 ✅ 推荐

📌 如何查看ROM版本:设置 → 关于手机 → 软件版本。如果版本太低,需要通过OTA或者手动刷机升级。

4.2 开发者模式开启

在真机上开启开发者模式:

  1. 进入 设置 → 关于手机
  2. 连续点击 版本号 7次
  3. 返回设置,找到 开发者选项
  4. 开启 USB调试
# 开启后通过hdc验证连接
hdc list targets

# 预期输出设备序列号,例如:
# 1234567890ABCDEF

4.3 hdc工具使用基础

hdc(HarmonyOS Device Connector)是OpenHarmony的设备连接工具,功能类似Android的adb:

# 查看已连接设备
hdc list targets

# 查看设备信息
hdc shell getprop

# 安装应用
hdc install /path/to/your.hap

# 查看日志(类似adb logcat)
hdc hilog

# 过滤特定TAG的日志
hdc hilog | grep "FlutterSpeechPlugin"

# 文件传输
hdc file send local_file /data/local/tmp/
hdc file recv /data/local/tmp/remote_file ./

💡 小技巧:hdc的日志命令是hilog而不是logcat,刚从Android转过来的同学经常搞混。另外hilog的输出格式也和logcat不太一样,需要适应一下。

五、创建第一个 Flutter-OHOS 项目

5.1 项目创建

万事俱备,来创建第一个项目验证环境:

# 创建支持OpenHarmony的Flutter项目
flutter create --platforms=ohos,android,ios hello_speech

# 进入项目目录
cd hello_speech

# 查看项目结构
ls -la

创建成功后的目录结构:

hello_speech/
├── android/          # Android平台代码
├── ios/              # iOS平台代码
├── ohos/             # OpenHarmony平台代码 ← 重点关注
│   ├── entry/
│   │   ├── src/main/
│   │   │   ├── ets/
│   │   │   │   ├── entryability/
│   │   │   │   │   └── EntryAbility.ets
│   │   │   │   └── pages/
│   │   │   │       └── Index.ets
│   │   │   ├── resources/
│   │   │   └── module.json5
│   │   ├── build-profile.json5
│   │   └── oh-package.json5
│   ├── build-profile.json5
│   └── oh-package.json5
├── lib/
│   └── main.dart     # Dart入口
├── pubspec.yaml
└── README.md

5.2 编译与运行

确保真机已连接,然后:

# 获取依赖
flutter pub get

# 编译并运行到OpenHarmony设备
flutter run -d 33Z

# 如果有多个设备,先查看设备列表
flutter devices
# 然后指定设备ID
flutter run -d <device_id>

请添加图片描述

第一次编译会比较慢(可能需要5-10分钟),因为要下载各种依赖。后续编译会快很多。

🎉 如果你看到了Flutter的默认计数器应用在鸿蒙设备上运行起来了,恭喜!环境搭建成功!

5.3 验证平台检测

修改lib/main.dart,加一段平台检测代码:

import 'dart:io';
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('Platform Test')),
        body: Center(
          child: Text(
            _getPlatformInfo(),
            style: const TextStyle(fontSize: 24),
          ),
        ),
      ),
    );
  }

  String _getPlatformInfo() {
    if (Platform.isOhos) return '当前平台:OpenHarmony ✅';
    if (Platform.isAndroid) return '当前平台:Android';
    if (Platform.isIOS) return '当前平台:iOS';
    return '当前平台:未知';
  }
}

如果屏幕上显示"当前平台:OpenHarmony ✅",说明一切正常。

六、常见问题与解决方案

6.1 Flutter Doctor 报错排查

问题1:OpenHarmony toolchain 显示红叉

[] OpenHarmony toolchain - develop for OpenHarmony devices
    ✗ Unable to locate OpenHarmony SDK

解决方案:

# 检查环境变量是否正确
echo $OHOS_SDK_HOME

# 如果为空,手动设置
export OHOS_SDK_HOME=/Users/yourname/Library/Huawei/Sdk

# 或者通过flutter config设置
flutter config --ohos-sdk=/Users/yourname/Library/Huawei/Sdk

问题2:hdc连接不上设备

# 重启hdc服务
hdc kill
hdc start

# 检查USB连接模式(需要选择"传输文件"模式)
# 如果还是不行,换根数据线试试(别笑,我真遇到过线的问题)

问题3:编译时报签名错误

# OpenHarmony应用需要签名才能安装到真机
# 在DevEco Studio中配置自动签名:
# File → Project Structure → Signing Configs → 勾选 Automatically generate signature

6.2 网络问题处理

国内开发者经常遇到的网络问题:

# Flutter pub get 超时
# 设置国内镜像
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

# ohpm install 超时
# 设置ohpm镜像
ohpm config set registry https://ohpm.openharmony.cn/ohpm/

6.3 版本兼容性问题

我整理了一份版本兼容矩阵,供大家参考:

Flutter-OHOS DevEco Studio OpenHarmony SDK 兼容性
3.35.7-dev 6.0.2 Release API 20 ✅ 推荐
3.27.0 5.0.x API 19 ⚠️ 部分功能受限
3.19.0 4.1.x API 18 ❌ 不推荐

😤 血泪教训:有一次我升级了DevEco Studio但没升级Flutter-OHOS SDK,结果编译直接报错。这三个工具的版本一定要配套,不能随便升级其中一个。

七、开发工具链配置

7.1 VS Code 配置(可选)

虽然DevEco Studio是官方IDE,但我日常开发更喜欢用VS Code,轻量且启动快:

// .vscode/settings.json
{
  "dart.flutterSdkPath": "/path/to/flutter-ohos",
  "dart.sdkPath": "/path/to/flutter-ohos/bin/cache/dart-sdk",
  "editor.formatOnSave": true,
  "dart.lineLength": 120
}

推荐安装的VS Code插件:

插件 用途 必要性
Flutter Flutter开发支持 ⭐⭐⭐⭐⭐ 必装
Dart Dart语言支持 ⭐⭐⭐⭐⭐ 必装
ArkTS ArkTS语法高亮 ⭐⭐⭐⭐ 推荐
GitLens Git增强 ⭐⭐⭐ 可选

7.2 调试配置

// .vscode/launch.json
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Flutter OHOS Debug",
      "type": "dart",
      "request": "launch",
      "program": "lib/main.dart",
      "args": ["-d", "ohos"]
    },
    {
      "name": "Flutter OHOS Profile",
      "type": "dart",
      "request": "launch",
      "program": "lib/main.dart",
      "args": ["-d", "ohos", "--profile"]
    }
  ]
}

7.3 Git配置建议

# .gitignore 中建议添加
echo "ohos/.cxx/" >> .gitignore
echo "ohos/build/" >> .gitignore
echo "ohos/entry/build/" >> .gitignore
echo "ohos/local.properties" >> .gitignore
echo "ohos/oh-package-lock.json5" >> .gitignore

八、环境维护与更新策略

8.1 定期更新建议

# 每月检查Flutter-OHOS更新
cd /path/to/flutter-ohos
git fetch origin
git log --oneline origin/main -5

# 更新前先备份当前版本
cp -r flutter-ohos flutter-ohos-backup-$(date +%Y%m%d)

# 确认无误后更新
git pull origin main
flutter doctor -v

8.2 多版本管理

如果需要同时维护多个Flutter版本,可以用目录隔离:

# 目录结构
~/flutter-sdks/
├── flutter-ohos-3.35.7/    # 当前稳定版
├── flutter-ohos-dev/        # 开发版
└── flutter-stable/          # 原版Flutter

# 通过alias快速切换
alias fohos='export PATH=~/flutter-sdks/flutter-ohos-3.35.7/bin:$PATH'
alias fdev='export PATH=~/flutter-sdks/flutter-ohos-dev/bin:$PATH'
alias fstable='export PATH=~/flutter-sdks/flutter-stable/bin:$PATH'

8.3 环境备份

养成备份的好习惯:

# 备份Flutter配置
cp -r ~/.flutter ~/flutter_backup_$(date +%Y%m%d)

# 备份DevEco Studio配置
# macOS
cp -r ~/Library/Preferences/com.huawei.deveco* ~/deveco_backup/
# Windows
# 复制 %APPDATA%\Huawei\DevEcoStudio 目录

九、环境搭建检查清单

最后给大家一份完整的检查清单,逐项确认:

# 1. DevEco Studio
deveco-studio --version  # 确认版本 6.0.2

# 2. Flutter-OHOS
flutter --version         # 确认 3.35.7-dev, channel ohos

# 3. OpenHarmony SDK
echo $OHOS_SDK_HOME       # 确认路径正确
ls $OHOS_SDK_HOME/openharmony/20/  # 确认API 20存在

# 4. hdc工具
hdc version               # 确认hdc可用

# 5. 设备连接
hdc list targets          # 确认设备已连接

# 6. Flutter Doctor
flutter doctor -v         # 确认全部绿勾

# 7. 项目编译
flutter create --platforms=ohos test_env
cd test_env
flutter run -d ohos       # 确认能编译运行

全部通过?恭喜你,环境搭建完成! 如果有任何一项失败,回到对应章节排查问题。

总结

环境搭建虽然枯燥,但却是后续所有工作的基础。本文覆盖了从零开始搭建Flutter-OHOS开发环境的完整流程:

  1. DevEco Studio:安装配置、SDK管理、签名设置
  2. Flutter-OHOS SDK:下载、环境变量、版本验证
  3. OpenHarmony SDK:API 20配置、Core Speech Kit确认
  4. 真机准备:ROM版本、开发者模式、hdc连接
  5. 项目验证:创建项目、编译运行、平台检测

下一篇我们进入理论环节,深入分析Flutter Plugin的工作机制。理解了Platform Channel的原理,才能更好地做OpenHarmony适配。

如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!


相关资源:

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐