作者:zifeiyu

Flutter / OpenHarmony

Flutter 写鸿蒙
配置教程

按 Windows 新手路径整理:先配工具,再跑 doctor,最后创建项目并构建 HAP。

最终目标

做完后,你应该能完成这三件事:

  • flutter doctor -v 里 Flutter 和 OpenHarmony 相关项没有阻塞错误。
  • 能执行 flutter create --platforms ohos my_ohos_app 创建鸿蒙项目。
  • 能执行 flutter build hap --release 生成 entry-default-signed.hap

1. 准备清单

2. 配置 JDK 17 和 DevEco SDK

2.1 检查 JDK

java -version
javac -version

输出里应该能看到 17。如果看到 1.8、11 或找不到命令,先修 JAVA_HOME 和 Path。

2.2 找到 DevEco Studio 工具目录

假设 DevEco 安装在下面这个位置:

D:\devecostudio-windows\DevEco Studio

这个目录下通常会有 sdktools\ohpm\bintools\hvigor\bintools\node。实际路径以你的电脑为准。

3. 配置环境变量

先在 PowerShell 临时配置并验证,确认没问题再写入系统环境变量。

$env:JAVA_HOME="D:\Java\jdk-17"
$env:TOOL_HOME="D:\devecostudio-windows\DevEco Studio"
$env:DEVECO_SDK_HOME="$env:TOOL_HOME\sdk"
$env:PATH="$env:JAVA_HOME\bin;$env:TOOL_HOME\tools\ohpm\bin;$env:TOOL_HOME\tools\hvigor\bin;$env:TOOL_HOME\tools\node;$env:TOOL_HOME\sdk\default\openharmony\toolchains;$env:PATH"

java -version
node -v
ohpm -v
hvigor -v
hdc -v

上面命令都能输出版本后,再把这些路径追加到 Windows 系统环境变量。注意是追加,不是把原来的 Path 全删掉。

3.1 国内镜像和缓存目录

$env:PUB_HOSTED_URL="https://pub.flutter-io.cn"
$env:FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
$env:PUB_CACHE="D:\PUB"

如果后面切换过 FLUTTER_STORAGE_BASE_URL,删除 <flutter>\bin\cache 后再执行 flutter cleanflutter pub get

4. 下载 OpenHarmony 版 Flutter

这里用 OpenHarmony-SIG 的 flutter_flutter 仓库。不要让普通 Flutter SDK 的 bin 排在它前面。

Set-Location D:\ohos-work
git clone https://gitee.com/openharmony-sig/flutter_flutter.git

$env:PATH="D:\ohos-work\flutter_flutter\bin;$env:PATH"
flutter --version

如果你之前装过普通 Flutter,执行下面命令确认当前命令路径:

where.exe flutter

第一行应该指向 D:\ohos-work\flutter_flutter\bin\flutter.bat。如果不是,调整 Path 顺序。

5. 跑 doctor,不通过就先停

flutter doctor -v

不要只看最后一行,要逐项看。至少确认下面几项:

doctor 缺什么就先补什么。不要跳到创建项目,否则错误会变得更难看懂。

6. 创建 Flutter 鸿蒙项目

Set-Location D:\ohos-work
flutter create --platforms ohos my_ohos_app
Set-Location .\my_ohos_app
flutter pub get

创建成功后,项目里应该有 ohos 目录。这个目录就是鸿蒙平台工程。

6.1 先跑 debug

flutter devices
flutter run --debug -d <deviceId>

deviceIdflutter devices 输出里复制。没有设备时,先回 DevEco 打开模拟器或连接真机。

7. 构建 HAP 并安装

7.1 Release 构建

Set-Location D:\ohos-work\my_ohos_app
flutter build hap --release

构建产物通常在:

my_ohos_app\ohos\entry\build\default\outputs\default\entry-default-signed.hap

7.2 安装到设备

hdc list targets
hdc -t <deviceId> install ohos\entry\build\default\outputs\default\entry-default-signed.hap

开发阶段也可以直接用:

flutter run --debug -d <deviceId>

8. 常见报错

flutter 不是鸿蒙版

执行 where.exe flutter。第一行不是 flutter_flutter\bin,就调整 Path 顺序。

doctor 找不到 Git

把 Git 的 cmd 目录加入 Path,例如 C:\Program Files\Git\cmd

hvigor 或 ohpm 找不到

确认 DevEco 的 tools\hvigor\bintools\ohpm\bin 已加入 Path。

切换镜像后缓存报错

删除 flutter_flutter\bin\cache,项目里执行 flutter clean,再重新 flutter pub get

Windows 路径报错

项目、依赖插件、缓存放同一磁盘;路径不要太深,不要包含中文或空格。

设备找不到

先用 DevEco 确认设备在线,再用 hdc list targetsflutter devices 双重检查。

资料