Flutter三方库适配OpenHarmony【flutter_speech】— 开发环境搭建
欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net说到环境搭建,很多人觉得这是"体力活",没什么技术含量。但在Flutter-OHOS开发中,环境搭建可能是最考验耐心的环节。我第一次配这套环境的时候,前前后后折腾了将近一周,各种版本不兼容、路径配错、SDK下载失败…现在回想起来都头疼。为什么这么难?工具链还在快速迭代:Flutter-OH
前言
欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net
说到环境搭建,很多人觉得这是"体力活",没什么技术含量。但在Flutter-OHOS开发中,环境搭建可能是最考验耐心的环节。我第一次配这套环境的时候,前前后后折腾了将近一周,各种版本不兼容、路径配错、SDK下载失败…现在回想起来都头疼。
为什么这么难?三个原因:
- 工具链还在快速迭代:Flutter-OHOS的SDK几乎每个月都有更新,文档经常跟不上
- 依赖关系复杂:DevEco Studio、OpenHarmony SDK、Flutter-OHOS SDK三者之间有版本对应关系,搞错一个就全盘皆输
- 网络环境影响大:很多依赖需要从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首次启动配置向导
配置步骤:
- 用户协议:同意华为开发者协议
- 安装类型:选"Standard"就行,Custom模式除非你很清楚自己在干什么
- UI主题:Darcula(暗色)或IntelliJ Light(亮色),我选Darcula,晚上写代码对眼睛友好
- 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 开发者模式开启
在真机上开启开发者模式:
- 进入 设置 → 关于手机
- 连续点击 版本号 7次
- 返回设置,找到 开发者选项
- 开启 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开发环境的完整流程:
- DevEco Studio:安装配置、SDK管理、签名设置
- Flutter-OHOS SDK:下载、环境变量、版本验证
- OpenHarmony SDK:API 20配置、Core Speech Kit确认
- 真机准备:ROM版本、开发者模式、hdc连接
- 项目验证:创建项目、编译运行、平台检测
下一篇我们进入理论环节,深入分析Flutter Plugin的工作机制。理解了Platform Channel的原理,才能更好地做OpenHarmony适配。
如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!
相关资源:
更多推荐



所有评论(0)