HarmonyOS鸿蒙Next中SDK版本兼容性问题:Flutter SDK (dev分支) Dart版本过低(2.19.6),导致无法使用Flutter 3.0+版本的社区插件

HarmonyOS鸿蒙Next中SDK版本兼容性问题:Flutter SDK (dev分支) Dart版本过低(2.19.6),导致无法使用Flutter 3.0+版本的社区插件

问题描述

1. 环境信息

  • 操作系统: macOS 15.4 (Intel)
  • Flutter SDK: OpenHarmony-Sig / flutter_flutter (dev 分支)
  • 本地 Dart SDK: 2.19.6
  • DevEco Studio 版本: 6.1.0 Release
  • API 版本: API 10 / 11

2. 复现步骤

  1. 使用 fvmgit clone 接入 openharmony-sigflutter_flutter 仓库 dev 分支。
  2. 创建或打开一个包含常规插件依赖(如 flutter_lints: ^3.0.0)的 Flutter 项目。
  3. 执行 flutter pub get

3. 预期结果

项目能够正常解析依赖,并支持 Dart 3.x 语法及相关三方库。

4. 实际结果

依赖解析失败,报错信息显示:

Because [project_name] depends on flutter_lints >=3.0.0 which requires SDK version >=3.0.0 <4.0.0, version solving failed.

目前的 dev 分支 Dart SDK 固定在 2.19.6,远滞后于官方当前主流的 3.x 版本,导致大量依赖 Flutter 3.0 生态的插件无法集成,严重限制了存量 Flutter 项目向鸿蒙端迁移的效率。


改进建议

  1. 升级基座: 建议将 dev 分支的 Flutter 基座尽快升级至官方 3.103.22 以上版本。
  2. 多版本并行: 如果 API 10 必须绑定旧版 SDK,建议社区提供专门的 dev_v3 分支,用于适配 Dart 3.x 的项目需求。

更多关于HarmonyOS鸿蒙Next中SDK版本兼容性问题:Flutter SDK (dev分支) Dart版本过低(2.19.6),导致无法使用Flutter 3.0+版本的社区插件的实战教程也可以访问 https://www.itying.com/category-92-b0.html

6 回复

您好,目前已有支持3.0以上版本dart的flutter sdk,目前支持 3.7、3.22、3.27、3.35版本flutter,后续版本适配计划可以参考Flutter-OH版本演进规划和分支策略。也有支持各版本的flutter_lints等三方库

更多关于HarmonyOS鸿蒙Next中SDK版本兼容性问题:Flutter SDK (dev分支) Dart版本过低(2.19.6),导致无法使用Flutter 3.0+版本的社区插件的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


Flutter 3.7.12-ohos-1.0.6 • channel dev • https://gitee.com/openharmony-sig/flutter_flutter.git

Framework • revision fcd9993d96 (1 year, 3 months ago) • 2025-02-20 10:51:28 +0000

Engine • revision 1a65d409c7

Tools • Dart 2.19.6 • DevTools 2.20.0

您好,感谢您的耐心解答。但我发现我们之间对“版本”的理解存在一个核心技术错位

我反馈的根本问题不是 Flutter 的版本,而是 Dart SDK 的版本

  1. 核心技术矛盾: 在 Flutter 官方生态中,Flutter 3.0+ 强绑定了 Dart 3.x。但是,目前你们仓库默认的 dev 分支,虽然可能魔改支持了部分 Flutter 3.x 的渲染特性,但其内部集成的 Dart SDK 依然被锁死在 2.19.6

  2. 导致的灾难性后果: 现代 Flutter 社区的三方库(如 flutter_lints: ^3.0.0 及大量主流插件)在 pubspec.yaml 中都强制要求 sdk: ">=3.0.0 <4.0.0"。由于 dev 分支的 Dart 版本是 2.19.6,导致项目在执行 flutter pub get直接在环境检查阶段报错崩溃,根本无法引入任何现代社区生态。

我的核心诉求是: 既然您提到官方已经支持了 Flutter 3.22 / 3.27 / 3.35,那么这些高版本分支里集成的 Dart SDK 是否已经真正升级到了 Dart 3.x(例如 Dart 3.22.x)

如果已经升级,请直接告诉我**具体哪一个 Git 分支名(或 Tag)**拥有 Dart 3.x 的环境?

学习了

HarmonyOS Next 的 Flutter SDK dev 分支绑定的 Dart 版本为 2.19.6,低于 Flutter 3.0+ 社区插件所需的 Dart 3.0+ 基线,导致插件无法正常编译。这是 SDK 分支版本与插件版本之间的直接兼容性冲突,需等待鸿蒙 Flutter SDK 更新至适配的 Dart 版本。

当前 OpenHarmony-Sig 的 Flutter dev 分支基于 Flutter 3.7 的早期适配版本,内置 Dart 2.19.6,无法直接使用需要 Dart 3.x 的插件。这是由于鸿蒙引擎移植初期锁定在该基线所致。社区已关注到此问题,正在推进基于 Flutter 3.22 等更高版本的引擎适配,并计划提供独立的 Dart 3.x 支持分支。在此过渡期,可通过锁定依赖至兼容 Dart 2.19 的旧版(如 flutter_lints: ^2.0.0)临时规避,或等待新分支发布后再进行迁移。DevEco Studio 6.x 对应的插件生态也将在后续版本中跟进升级。

回到顶部