已有Flutter项目适配鸿蒙6

环境准备

HarmonyOS 开发环境

Flutter 环境管理工具FVM (安装方式网上有很多)

官方Flutter

使用FVM安装鸿蒙版的Flutter

前往鸿蒙flutter官方仓库 可以发现他的标签已经支持到3.27.5,但这不是一个正式版,但是他是目前最新的版本了

接下来,我们需要下载项目,并将其切到 3.27.5-ohos-1.0.1 标签

shell 复制代码
# 将目录先切换到FVM的版本路径
cd /XXX/fvm/versions

# 下载仓库 
git clone https://gitcode.com/openharmony-sig/flutter_flutter.git 


# 切换到 3.22.1-ohos-1.0.0 标签 
cd flutter_flutter 
git checkout 3.27.5-ohos-1.0.1

完成后查看Flutter版本

在命令行执行

shell 复制代码
fvm list

会看到我们安装后的鸿蒙版本SDK

使用我们安装的鸿蒙Flutter

切换到我们的项目中来使用 鸿蒙版的Flutter,这里如果你的工程使用了git 托管,我建议另起一个分支来处理鸿蒙适配

接下来,切换到项目根目录下 ,运行以下命令使用刚刚安装的 Flutter SDK:(注意,如果弹出一些提醒,一路 yes 即可:)

shell 复制代码
fvm use  3.27.5-ohos-1.0.1

改造我们的工程来适配鸿蒙

如果你的工程使用了git 托管,我建议另起一个分支来处理鸿蒙适配 下面我们使用鸿蒙版的Flutter来为我们的项目创建 ohos 文件夹:

shell 复制代码
# 建议先在这里确认一下你的 当前flutter sdk有没有切换成功
flutter --version

# 如果没有切换可以执行 fvm use 指令来切换到鸿蒙Flutter

# 执行命令创建ohos文件
flutter create --platforms ohos .  //这行最好这里有个点.

# 如果上面这个命令不好用 可以试试
fvm flutter create --platforms ohos .

这样工程中就出现了ohos 文件

第三方插件的管理

对于三方插件来说,纯 Dart 的库是可以直接在鸿蒙上使用的,和平台相关的类库,需要兼容鸿蒙的库。他们不在 pub 上,而是由开源项目进行维护。有哪些插件支持了鸿蒙,可以在这个清单列表中查看 gitcode.com/openharmony... 比如我的项目中使用了 shared_preferences 就需要使用鸿蒙提供的版本,这里我们可以使用dependency_overrides 覆盖依赖,这样不会影响以前的代码结构:

在项目目录下执行一下命令 来下载依赖库

shell 复制代码
flutter pub get //或者是fvm flutter pub get

对项目进行打包运行

这时候就需要使用鸿蒙的开发 IDE了。打开DevEco-studio

使用DevEco-studio打开刚刚创建的ohos 文件夹

IDE 第一次可能会执行构建

如果有失败可以使用flutter doctor或者 fvm flutter doctor来排除一下问题

一切正常的话,来打包吧

shell 复制代码
flutter build hap --release    //或 fvm flutter build hap --release

这样项目就可以在鸿蒙上跑起来了, 打开模拟器,点击运行即可,如果是真机调试,打开开发者模式重启手机,打开USB调试,插在电脑上,这里我遇到过不识别的问题,我换了官方数据线就好了,普通安卓type-C线可能会不识别【裂开】

相关推荐
renke33643 小时前
Flutter for OpenHarmony:色彩捕手——基于HSL色轮与感知色差的交互式色觉训练系统
flutter
子春一5 小时前
Flutter for OpenHarmony:构建一个 Flutter 四色猜谜游戏,深入解析密码逻辑、反馈算法与经典益智游戏重构
算法·flutter·游戏
铅笔侠_小龙虾6 小时前
Flutter 实战: 计算器
开发语言·javascript·flutter
微祎_7 小时前
Flutter for OpenHarmony:构建一个 Flutter 重力弹球游戏,2D 物理引擎、手势交互与关卡设计的工程实现
flutter·游戏·交互
一起养小猫8 小时前
Flutter for OpenHarmony 实战_魔方应用UI设计与交互优化
flutter·ui·交互·harmonyos
hudawei9968 小时前
flutter和Android动画的对比
android·flutter·动画
一只大侠的侠8 小时前
Flutter开源鸿蒙跨平台训练营 Day7Flutter+ArkTS双方案实现轮播图+搜索框+导航组件
flutter·开源·harmonyos
一只大侠的侠9 小时前
Flutter开源鸿蒙跨平台训练营 Day9分类数据的获取与渲染实现
flutter·开源·harmonyos
一只大侠的侠10 小时前
Flutter开源鸿蒙跨平台训练营 Day 5Flutter开发鸿蒙电商应用
flutter·开源·harmonyos
ZH154558913111 小时前
Flutter for OpenHarmony Python学习助手实战:GUI桌面应用开发的实现
python·学习·flutter