已有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线可能会不识别【裂开】

相关推荐
火柴就是我3 小时前
让我们实现一个更好看的内部阴影按钮
android·flutter
王晓枫4 小时前
flutter接入三方库运行报错:Error running pod install
前端·flutter
shankss11 小时前
Flutter 下拉刷新库 pull_to_refresh_plus 设计与实现分析
flutter
忆江南1 天前
iOS 深度解析
flutter·ios
明君879971 天前
Flutter 实现 AI 聊天页面 —— 记一次 Markdown 数学公式显示的踩坑之旅
前端·flutter
恋猫de小郭1 天前
移动端开发稳了?AI 目前还无法取代客户端开发,小红书的论文告诉你数据
前端·flutter·ai编程
MakeZero1 天前
Flutter那些事-交互式组件
flutter
shankss1 天前
pull_to_refresh_simple
flutter
shankss1 天前
Flutter 下拉刷新库新特性:智能预加载 (enableSmartPreload) 详解
flutter
SoaringHeart3 天前
Flutter调试组件:打印任意组件尺寸位置信息 NRenderBox
前端·flutter