使用flutter开发,DevEco Studio的HotReload是无法使用的吗?

使用flutter开发,DevEco Studio的HotReload是无法使用的吗? 【问题描述】:使用flutter开发,DevEco Studio的HotReload是无法使用用的吗? 顺便问下sqlite3有兼容包吗?

【问题现象】:用原生写的ArkTs热重载没问题,flutter适配鸿蒙,使用HotReload点击没有反应。

【版本信息】:DevEco Studio 6.0.0 Release , built on December 23, 2025 flutter version Flutter 3.27.5-ohos-1.0.1 • channel [user-branch] • https://gitcode.com/openharmony-tpc/flutter_flutter.git Framework • revision 88cef0fb92 (11 days ago) Engine • revision e672b006cb Tools • Dart 3.6.2 ,DevTools 2.40.0 手机 API 版本6.0.1(21) OpenHarmony 版本,OpenHarmony 6.0 其他说明 仓库版本: https://gitcode.com/openharmony-tpc/flutter_flutter/tree/oh-3.27.4-dev

【复现代码】:无


更多关于使用flutter开发,DevEco Studio的HotReload是无法使用的吗?的实战教程也可以访问 https://www.itying.com/category-92-b0.html

5 回复

开发者你好,在混合开发时,ohos工程中引用flutter_module工程无法实现热重载;

热重载的能力支持有一定的范围和使用约束,可参考文档链接:热重载使用约束

请详细描述下你这边的开发场景。

更多关于使用flutter开发,DevEco Studio的HotReload是无法使用的吗?的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


开发者你好,关于flutter的热重载问题,flutter开发本身是支持热重载的,不过热重载只支持dart侧代码的修改,不支持原生侧(ohos目录)代码的修改。 热重载使用约束的链接文档是纯原生热重载的限制,和flutter开发无关。

DevEco Studio的HotReload功能主要针对ArkTS/ArkUI开发。使用Flutter开发鸿蒙应用时,应使用Flutter SDK和Android Studio/VS Code等工具,其HotReload功能由Flutter框架本身提供。在DevEco Studio中直接进行Flutter开发,无法使用其内置的ArkTS HotReload机制。

是的,根据你提供的信息,在使用Flutter for OpenHarmony (ohos) 进行开发时,DevEco Studio 内置的 Hot Reload 功能目前是无法使用的

主要原因如下:

  1. 工具链差异:DevEco Studio 的 Hot Reload 功能是深度集成并针对 ArkTS/ArkUI 原生开发工作流优化的。它依赖于 HarmonyOS 的特定编译和调试管道。而 Flutter for OpenHarmony 项目本质上是将 Flutter 引擎和框架移植到 OpenHarmony 平台,它使用自己的构建系统(基于 GN/Ninja)和调试协议。

  2. 调试协议不匹配:Flutter 的热重载依赖于 Dart VM 的调试服务以及 flutter_tool 与 IDE(如 VS Code、Android Studio/IntelliJ 的 Flutter 插件)之间的通信。DevEco Studio 并未集成 Flutter 的 Dart 调试插件,因此无法建立与运行中 Flutter 应用的调试连接,从而无法触发热重载。

当前可行的开发工作流: 对于 Flutter on OpenHarmony 项目,你应该使用 Flutter 命令行工具 来启动应用并启用热重载。 在项目根目录下,使用以下命令:

flutter run --target-platform ohos

当应用在设备或模拟器上运行后,在终端中输入 r 即可触发热重载,输入 R 可触发热重启。这是目前官方支持的热重载方式。

关于 sqlite3 兼容包: 是的,OpenHarmony 提供了原生的关系型数据库能力,即 @ohos.data.relationalStore。在 Flutter for OpenHarmony 项目中,不能直接使用 Flutter 生态中常见的 sqflite 等插件,因为这些插件依赖的底层原生库(如 Android 的 SQLite)在 OpenHarmony 上不可用。

你需要:

  1. 通过 Flutter 的 Platform Channel(FFI 目前支持可能不完善)来调用 OpenHarmony 原生的 relationalStore API。
  2. 或者,寻找社区是否有针对 OpenHarmony 封装了 relationalStore 的 Flutter 插件(目前可能尚不成熟或不存在)。
  3. 另一种方案是使用纯 Dart 实现的数据库,如 moordrift(它们依赖 sqlite3 的 Dart 版本),但你需要确认其纯 Dart 版本在 OpenHarmony 的 Dart 环境下是否能完全正常工作。

总结

  • 热重载:请使用 flutter run --target-platform ohos 命令在终端中操作。
  • 数据库:需使用 OpenHarmony 原生 relationalStore 并通过 Platform Channel 桥接,或评估纯 Dart 数据库方案的兼容性。直接使用 sqflite 插件不可行。
回到顶部