Skip to content

鸿蒙版alpha版来了,欢迎大家反馈bug #1957

Open

Description

@xiaoxiaowesley

期待已久的flutter_boost鸿蒙适配初步完毕了。目前基于4.4.2版本,核心功能已经开发完毕,但因为源于鸿蒙版本的flutter引擎还在迭代中,部分接口可能会有细调整,但大致不会有大改。

本分支会等待稳定后会择期合会到master分支

如遇问题,欢迎反馈另开issue反馈,issue仅用于安装说明指引🤪

太长不看版

熟悉fluttrboost的老司机,直接切换至 main 分支即可

pubspec.yaml

  flutter_boost:
    git:
      url: "git@github.com:alibaba/flutter_boost.git"
      ref: "main"

详细鸿蒙版安装flutterboost教程 (addToApp)

详看:https://github.com/alibaba/flutter_boost/blob/main/docs/install.md

运行example 看看

如果一切还很懵逼,先运行一下example看看。代码也直接参考example的代码

1.切换flutter版本

https://gitee.com/openharmony-sig/flutter_flutter dev或者master 分支都行

2.配置好flutter_boost/ohos/local.properties 和 flutter_boost/example/ohos/local.properties

比如我的是这样的,按葫芦画瓢即可

hwsdk.dir=/Users/xiaoxiang/Library/Huawei/Sdk
sdk.dir=/Users/xiaoxiang/Library/Huawei/Sdk/openharmony
nodejs.dir=/Users/xiaoxiang/node/node-16.20.1

3.sdk10 请切换到 task/4.4.2-support-ohos-api10 分支(后续不维护api10了,建议升级到api11)

4.打开AndrioidStudio + 真机运行

打开AndrioidStudio,插上真机直接运行即可

PS:现在直接打包到flutter_flutter的libflutter.so和har包可能会比较旧,建议自己编译flutter_engine,然后通过local engine的方式运行

附上我的local engine的参数:
--local-engine-src-path /Users/xiaoxiang/Documents/code/ali_flutter_engine/ohos_flutter_engine/src --local-engine ohos_debug_unopt_arm64
image.png

错误排查:

  1. Exception: profile_tmp_template.json is not found,Please refer to the readme to create the file.

解决办法:
签名问题,使用DevEcoStuido 打开flutter_boost/example/ohos,然后直接运行后,按照提示签名即可。再重新会到AndrdoiStudio重新运行

反馈问题

创建issue,添加 OHOS label即可

正在进行中的工作

  • 透明flutterPage
  • 文档丰富

Activity

  1. hbwangcaihua commented on Jan 31, 2024

    @hbwangcaihua

    👍🏻,我来验验

  2. BaseBBHuang commented on Feb 1, 2024

    @BaseBBHuang

    very nice~

  3. hbwangcaihua commented on Feb 5, 2024

    @hbwangcaihua

    正式版大概什么时候能出呢?这版功能好像还不完善,flutter打开native页面、打开带容器的flutter还不支持

  4. xiaoxiaowesley commented on Feb 20, 2024

    @xiaoxiaowesley
    CollaboratorAuthor

    正式版大概什么时候能出呢?这版功能好像还不完善,flutter打开native页面、打开带容器的flutter还不支持

    你说的这两个都有的。详看 https://github.com/alibaba/flutter_boost/blob/task/4.4.2-support-ohos/docs/install.md

    1.flutter打开native页面

    有对应FlutterBoostDelegate的pushNativeRoute函数

    1. 打开带容器的flutter

    有对应FlutterBoostDelegate的pushFlutterRoute函数,可以自定义在当前UIAbility打开,还是另开一个UIAbility,都是可以定制的

  5. Leon-ele commented on Feb 27, 2024

    @Leon-ele

    demo中 打开flutter页面时闪退
    image

  6. xiaoxiaowesley commented on Feb 28, 2024

    @xiaoxiaowesley
    CollaboratorAuthor

    demo中 打开flutter页面时闪退 image

    这是已知flutter_flutter在api11出现的重复har包bug,

    https://gitee.com/openharmony-sig/flutter_flutter/pulls/157/files
    已经修复。需要更新flutter_flutter到最新的dev分支。

  7. zmtzawqlp commented on Feb 28, 2024

    @zmtzawqlp
    Contributor

    类似这个 #1579 问题,鸿蒙里面怎么设置第一个页面为 flutter页面,鸿蒙框架下面跟安卓ios 差别挺大的

  8. xiaoxiaowesley commented on Feb 28, 2024

    @xiaoxiaowesley
    CollaboratorAuthor

    类似这个 #1579 问题,鸿蒙里面怎么设置第一个页面为 flutter页面,鸿蒙框架下面跟安卓ios 差别挺大的

    参考example里面的EntryPage.ets

  9. zmtzawqlp commented on Feb 28, 2024

    @zmtzawqlp
    Contributor

    类似这个 #1579 问题,鸿蒙里面怎么设置第一个页面为 flutter页面,鸿蒙框架下面跟安卓ios 差别挺大的

    参考example里面的EntryPage.ets

    好的已解决

  10. zmtzawqlp commented on Feb 28, 2024

    @zmtzawqlp
    Contributor

    @xiaoxiaowesley

    1. 手机的物理退后页面看起来有问题呢? 直接退出整个app了。FlutterA=>FlutterB withContainer 设置成 flase
    2. 没有全屏到状态栏
  11. xiaoxiaowesley commented on Feb 29, 2024

    @xiaoxiaowesley
    CollaboratorAuthor

    @xiaoxiaowesley

    1. 手机的物理退后页面看起来有问题呢? 直接退出整个app了。FlutterA=>FlutterB withContainer 设置成 flase
    2. 没有全屏到状态栏

    你重新提一个issue吧,附上代码,来详细跟进

  12. zmtzawqlp commented on Feb 29, 2024

    @zmtzawqlp
    Contributor

    @xiaoxiaowesley

    1. 手机的物理退后页面看起来有问题呢? 直接退出整个app了。FlutterA=>FlutterB withContainer 设置成 flase
    2. 没有全屏到状态栏

    你重新提一个issue吧,附上代码,来详细跟进

    #1969 和 #1970

  13. hoooou commented on Mar 7, 2024

    @hoooou

    编译出来的har,icudata.dat占了10m,太大了,是不是可以移除掉

  14. xiaoxiaowesley commented on Mar 12, 2024

    @xiaoxiaowesley
    CollaboratorAuthor

    编译出来的har,icudata.dat占了10m,太大了,是不是可以移除掉

    这是flutter相关,不和flutterboost相关。请到flutter_engine相关gitee上提交issue

  15. wangqiaoguang commented on May 13, 2024

    @wangqiaoguang
  16. xiaoxiaowesley commented on May 21, 2024

    @xiaoxiaowesley
    CollaboratorAuthor
  17. jayjayjay16 commented on Jul 3, 2024

    @jayjayjay16

    从鸿蒙打开Flutter页面,怎么把鸿蒙页面关闭呢

  18. MichaelSSY commented on Aug 26, 2024

    @MichaelSSY

    我们现在使用的混合开发模式,一个鸿蒙页面中上半部分是鸿蒙原生页面,下半部分是flutter页面,flutter页面我们使用FlutterBoostPage包起来的:FlutterBoostPage({ viewId: this.flutterView?.getId() })

    问题:现在的问题是FlutterBoostPage包起来后必须要设置个精确的height,否则会有半屏的内容滑动不上去(应该是上半部分原生组件的高度),是不是FlutterBoostPage包起来后的组件默认高度是不是屏幕高度呀?

    Column() {
    Button("按钮")
    .backgroundColor(Color.Red)
    .height(100)
    .width(100)
    FlutterBoostPage({ viewId: this.flutterView?.getId() })
    .height(this.flutterViewHeight)
    }
    .height('100%')
    .width('100%')

  19. thesnail commented on Feb 12, 2025

    @thesnail
    02-12 15:58:51.507 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: Null check operator used on a null value
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #0      BoostPage.createRoute (package:flutter_boost/src/flutter_boost_app.dart:774)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #1      NavigatorState.restoreState (package:flutter/src/widgets/navigator.dart:3622)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #2      RestorationMixin._doRestore (package:flutter/src/widgets/restoration.dart:924)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #3      RestorationMixin.didChangeDependencies (package:flutter/src/widgets/restoration.dart:910)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #4      NavigatorState.didChangeDependencies (package:flutter/src/widgets/navigator.dart:3690)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #5      StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5636)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #6      ComponentElement.mount (package:flutter/src/widgets/framework.dart:5463)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #7      Element.inflateWidget (package:flutter/src/widgets/framework.dart:4340)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #8      Element.updateChild (package:flutter/src/widgets/framework.dart:3849)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #9      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #10     Element.rebuild (package:flutter/src/widgets/framework.dart:5203)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #11     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5469)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #12     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5463)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #13     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4340)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #14     Element.updateChild (package:flutter/src/widgets/framework.dart:3849)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #15     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #16     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5650)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #17     Element.rebuild (package:flutter/src/widgets/framework.dart:5203)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #18     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5469)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #19     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5641)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #20     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5463)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #21     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4340)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #22     Element.updateChild (package:flutter/src/widgets/framework.dart:3849)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #23     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #24     Element.rebuild (package:flutter/src/widgets/framework.dart:5203)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #25     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5469)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #26     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5463)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #27     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4340)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #28     Element.updateChild (package:flutter/src/widgets/framework.dart:3849)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #29     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #30     Element.rebuild (package:flutter/src/widgets/framework.dart:5203)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #31     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5469)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #32     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5463)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #33     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4340)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #34     Element.updateChild (package:flutter/src/widgets/framework.dart:3849)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #35     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #36     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5650)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #37     Element.rebuild (package:flutter/src/widgets/framework.dart:5203)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #38     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5469)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #39     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5641)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #40     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5463)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #41     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4340)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #42     Element.updateChild (package:flutter/src/widgets/framework.dart:3849)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #43     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #44     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5650)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #45     Element.rebuild (package:flutter/src/widgets/framework.dart:5203)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #46     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:5469)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #47     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5641)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #48     ComponentElement.mount (package:flutter/src/widgets/framework.dart:5463)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #49     Element.inflateWidget (package:flutter/src/widgets/framework.dart:4340)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #50     MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6904)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #51     Element.updateChild (package:flutter/src/widgets/framework.dart:3849)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #52     Element.updateChildren (package:flutter/src/widgets/framework.dart:4036)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #53     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6929)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #54     Element.updateChild (package:flutter/src/widgets/framework.dart:3827)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #55     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5512)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #56     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5650)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #57     Element.rebuild (package:flutter/src/widgets/framework.dart:5203)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #58     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2905)
    02-12 15:58:51.509 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #59     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1136)
    02-12 15:58:51.510 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #60     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:443)
    02-12 15:58:51.510 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #61     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1392)
    02-12 15:58:51.510 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #62     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1313)
    02-12 15:58:51.510 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #63     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1171)
    02-12 15:58:51.510 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #64     _invoke (dart:ui/hooks.dart:312)
    02-12 15:58:51.510 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #65     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:420)
    02-12 15:58:51.510 43533 43673 W A00000/com.hcbnjy.harmonyapp/XComFlutterOHOS_Native: flutter settings log message: #66     _drawFrame (dart:ui/hooks.dart:283)
    

    最新版本 release模式下页面显示不出来是啥问题

  20. wangshaowen1 commented on Apr 17, 2025

    @wangshaowen1

    引擎初始化 不成功,也不走回调。走下面截图这个 节点。

    Image

  21. llishiqiang1314 commented on Jul 7, 2025

    @llishiqiang1314

    请问什么时候harmony版 可以支持flutter sdk 3.22.0 以上版本

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

OHOSOpenharmony only

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions