Flutter 框架跨平台鸿蒙开发 —— FAQ——COMPILE RESULT:FAIL {ERROR:1 WARN:243} 启动报错解决方案
oh_modules 下缺少对应的 native 库(二进制文件)。通常是因为在 ohos 目录下没有执行依赖同步,或者本地的 C++ 编译产物被清理了,导致 hvigor(鸿蒙的构建工具)找不到对应的 arm64 架构二进制包。核心是在当前目录生成仅适配鸿蒙的 Flutter 项目,包含通用 Dart 代码 + 鸿蒙原生适配代码;核心生成的专属目录是ohos/(含鸿蒙编译、打包、原生交互代码),
前提
解决问题的前提是关闭360等一系列的工具。

上下文异常
> hvigor ERROR: ENOENT: no such file or directory, stat 'D:\Flutter\mytest\ohos\entry\oh_modules\flutter_native_x86_64'
COMPILE RESULT:FAIL {ERROR:1 WARN:243}
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --debug option to get more log output.
> hvigor ERROR: BUILD FAILED in 16 s 989 ms
Running Hvigor task assembleHap... /
Oops; flutter has exited unexpectedly: "ProcessException: The command failed with exit code 1
Command: hvigorw assembleHap -p product=default -p buildMode=debug --no-daemon -p FLUTTER_TARGET=lib\main.dart -p
TARGET_PLATFORM=ohos-arm64 -p DART_OBFUSCATION=false -p TRACK_WIDGET_CREATION=true -p TREE_SHAKE_ICONS=false -p
PACKAGE_CONFIG=D:\Flutter\mytest\.dart_tool\package_config.json".
A crash report has been written to D:\Flutter\mytest\flutter_01.log
This crash may already be reported. Check GitHub for similar crashes.
https://github.com/flutter/flutter/issues?q=is%3Aissue+ProcessException%3A+The+command+failed+with+exit+code+1%0A++Command%3A+hvigorw+assembleHap+-p+product%3Ddefault+-p+buildMode%3Ddebug+--no-daemon+-p+FLUTTER_TARGET%3Dlib%5Cmain.dart+-p+TARGET_PLATFORM%3Dohos-arm64+-p+DART_OBFUSCATION%3Dfalse+-p+TRACK_WIDGET_CREATION%3Dtrue+-p+TREE_SHAKE_ICONS%3Dfalse+-p+PACKAGE_CONFIG%3DD%3A%5CFlutter%5Cmytest%5C.dart_tool%5Cpackage_config.json
To report your crash to the Flutter team, first read the guide to filing a bug.
https://flutter.dev/to/report-bugs
Create a new GitHub issue by pasting this link into your browser and completing the issue template. Thank you!
目录
flutter create --platforms ohos . 具体说明
前言
oh_modules 下缺少对应的 native 库(二进制文件)。 通常是因为在 ohos 目录下没有执行依赖同步,或者本地的 C++ 编译产物被清理了,导致 hvigor(鸿蒙的构建工具)找不到对应的 arm64 架构二进制包。
解决方案——删除原编译文件——重新生成
就是删,然后重新初始化一下。

重新创建命令:
flutter create --platforms ohos .
运行完毕后缺少的文件就补充上了。
重新编译
直接再运行就行了。
flutter run -v
解决效果
可以看到已经可以启动了。


flutter create --platforms ohos . 具体说明
一、命令核心作用
flutter create 是 Flutter 初始化新项目的基础指令,--platforms ohos 限定仅为OpenHarmony(鸿蒙) 平台生成适配代码,. 表示在当前目录创建项目(而非新建子目录)。核心作用包括:
- 生成 Flutter 跨平台项目的通用基础结构(Dart 代码、资源文件、配置文件);
- 针对性生成 OpenHarmony 平台的编译、运行、打包所需的专属配置和原生代码;
- 自动配置 pubspec.yaml,引入鸿蒙平台依赖;
- 初始化项目的开发环境配置(如 lint 规则、编译脚本)。
补充:若未指定
--platforms ohos,默认会生成 android/ios/web/windows/macos/linux 等平台代码;指定后仅保留通用代码 + ohos 平台代码(也可叠加其他平台,如--platforms ohos,android)。
二、命令执行后创建的文件 / 目录结构(按功能分类)
以下是该命令在当前目录生成的核心文件 / 目录,标注「鸿蒙专属」和「通用」,便于区分:
| 目录 / 文件路径 | 类型 | 核心作用 | 关键内容说明 |
|---|---|---|---|
./(当前目录根) |
目录 | 项目根目录 | 所有文件的容器,以下均为根目录下的内容 |
pubspec.yaml |
文件(通用) | 项目依赖配置 | 1. 自动添加鸿蒙平台相关依赖(如 flutter_ohos 适配层);2. 声明项目名称、版本、Flutter SDK 版本、资源文件(assets)路径;3. 可手动添加第三方 Dart 包。 |
pubspec.lock |
文件(通用) | 依赖锁定文件 | 记录 pubspec.yaml 中依赖的具体版本(确保团队开发依赖一致),自动生成无需手动修改。 |
lib/main.dart |
文件(通用) | 项目入口代码 | Flutter 应用的根 Widget(MaterialApp + Scaffold + Text 示例),是所有平台共享的业务代码入口。 |
lib/ |
目录(通用) | Dart 业务代码目录 | 存放所有 Dart 编写的业务逻辑、页面、组件,默认仅含 main.dart,开发者需自行扩展。 |
assets/ |
目录(通用) | 静态资源目录 | 存放图片、字体、配置文件等,默认空目录,需在 pubspec.yaml 中配置后才能使用。 |
test/ |
目录(通用) | 单元测试目录 | 含 widget_test.dart,默认生成测试示例(验证首屏是否渲染指定文本)。 |
ohos/ |
目录(鸿蒙专属) | 鸿蒙平台原生代码 / 配置 | 核心目录,所有鸿蒙平台的编译、打包、原生交互代码均在此,下面拆解其子目录: |
ohos/entry/ |
目录(鸿蒙专属) | 鸿蒙应用入口模块 | 对应鸿蒙的「entry 模块」,是应用的可执行单元,包含:1. src/main/ets/:鸿蒙 ETS 原生代码(如入口页面、Flutter 容器适配);2. src/main/resources/:鸿蒙资源文件(布局、字符串、样式、图片);3. src/main/config.json:鸿蒙应用配置(包名、版本、权限、设备类型);4. build-profile.json5:鸿蒙模块编译配置(编译模式、输出路径)。 |
ohos/ohos_build.yaml |
文件(鸿蒙专属) | 鸿蒙编译配置 | 定义鸿蒙平台的编译规则(如 SDK 版本、编译产物类型、依赖的 Flutter 引擎版本)。 |
ohos/packaging/ |
目录(鸿蒙专属) | 鸿蒙打包配置 | 存放鸿蒙应用打包所需的签名文件、打包脚本(生成 .hap 安装包)。 |
ohos/flutter_ohos/ |
目录(鸿蒙专属) | Flutter - 鸿蒙桥接层 | 存放 Flutter 引擎与鸿蒙系统的交互代码(如渲染层适配、事件传递、原生能力调用),无需手动修改。 |
.gitignore |
文件(通用) | Git 忽略配置 | 自动添加鸿蒙平台的编译产物(如 .hap、build 目录)、Flutter 缓存、IDE 配置文件等忽略规则。 |
analysis_options.yaml |
文件(通用) | Dart 代码检查规则 | 定义 Flutter 代码的 lint 规则(如代码风格、语法检查、潜在错误提示)。 |
README.md |
文件(通用) | 项目说明文档 | 自动生成的项目说明(包含鸿蒙平台的运行 / 打包指令示例)。 |
三、关键文件的核心价值(鸿蒙平台重点)
ohos/entry/src/main/config.json:鸿蒙应用的「身份证」,配置应用的包名(需唯一)、最小鸿蒙 SDK 版本、支持的设备(手机 / 平板 / 智慧屏)、申请的权限(如网络、存储),是打包和运行的核心配置。ohos/ohos_build.yaml:关联 Flutter 引擎与鸿蒙编译工具链,指定编译时使用的 Flutter 鸿蒙适配层版本,确保代码能编译为鸿蒙可执行文件。lib/main.dart:所有平台(含鸿蒙)的业务入口,修改该文件的 UI / 逻辑,鸿蒙端运行时会同步生效(Flutter 跨平台核心体现)。
四、注意事项
- 前置条件:执行该命令前需确保已安装「Flutter 鸿蒙适配插件」和「OpenHarmony SDK」,否则会报错「ohos platform not supported」;
- 目录覆盖:若当前目录已有文件(如 pubspec.yaml),命令会提示是否覆盖(谨慎操作,避免丢失已有代码);
- 多平台扩展:若后续需添加其他平台(如 android),可执行
flutter create --platforms android .补充生成对应平台代码; - 产物运行:鸿蒙端运行需执行
flutter run -d ohos,打包需执行flutter build ohos(生成 .hap 安装包)。
总结
flutter create --platforms ohos .核心是在当前目录生成仅适配鸿蒙的 Flutter 项目,包含通用 Dart 代码 + 鸿蒙原生适配代码;- 核心生成的专属目录是
ohos/(含鸿蒙编译、打包、原生交互代码),通用核心文件是lib/main.dart(业务入口)和pubspec.yaml(依赖配置); - 该命令的目的是让开发者快速启动 Flutter 鸿蒙项目,无需手动配置原生层适配,聚焦 Dart 业务开发。
欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net
更多推荐




所有评论(0)