OpenHarmony4.0Release无法调用高级组件问题分析

系统 OpenHarmony
最近学习北向应用开发,发现有个高级组件-子标题符合我的布局需求,但是调用的时候发生了cppcrash,调查一番之后解决了,分享一下解决过程。

想了解更多关于开源的内容,请访问:

51CTO 鸿蒙开发者社区

https://ost.51cto.com

1.简介

最近学习北向应用开发,发现有个高级组件-子标题符合我的布局需求,但是调用的时候发生了cppcrash,调查一番之后解决了,分享一下解决过程。

2.开发环境

  • 系统版本: 4.0-Release
  • DevEco Studio版本: 4.0 Release (build:4.0.0.600)
  • SDK版本: 4.0.10.18(及以上)
  • 设备型号: 开发者手机

一开始进行应用布局的时候,想着有没有一些系统原生组件能让开发更简单点,不用自己费劲的写自定义组件,然后发现了这个:

https://docs.openharmony.cn/pages/v4.0/zh-cn/application-dev/reference/arkui-ts/ts-composite-components-subheader.md。

参照示例把代码复制到应用之后,编译运行,应用闪退,报cppcrash错误,具体日志没截下来,但是cppcrash一般就是系统代码有问题,然后就在系统源码中搜索subheader,找到了对应的源码:

发现subheader是属于advanced_ui_component这个bundle。

继续调查发现开发者手机的系统组件中并没有包含。

查看advanced_ui_component下的文件夹,发现有个patches,里面有这么一个链接https://gitee.com/openharmony/productdefine_common/pulls/682,打开发现pr关闭了,查看源码修改,是有希望在组件里面添加高级组件的,但是不知道什么原因没有合并

之后我在开发者手机的配置中自己添加了高级组件。

编译运行后发现cppcrash解决了,但是又报了jscrash,提示没有提供OperationType这个类型。

一开始以为是SDK的问题,又是一番左右试探,冥思苦想之后查看源码,发现这么一个低级错误,js源码中,声明的是OperationType,但是导出时写的是OperationStyle!!!

编译之后烧录系统,运行正常了。写到这里不吐不快啊,感觉怎么会有如此低级的错误,代码质量真的急需加强。

想了解更多关于开源的内容,请访问:

51CTO 鸿蒙开发者社区

https://ost.51cto.com

责任编辑:姜华 来源: 51CTO 鸿蒙开发者社区
相关推荐

2023-10-27 06:33:14

鸿蒙开发套件

2023-12-11 17:30:52

预安装应用鸿蒙Launcher

2024-01-18 15:24:06

Rust开发鸿蒙OH4.0

2022-06-07 10:33:29

Camera组件鸿蒙

2022-04-25 09:10:50

RK3568鸿蒙

2023-05-31 15:45:49

HCS鸿蒙

2023-06-26 16:13:43

马达驱动模型鸿蒙

2022-04-19 11:23:26

release3.1子系统鸿蒙

2009-12-25 16:05:24

WPF 4.0特点

2022-04-18 10:37:01

鸿蒙操作系统开发工具

2023-08-24 16:45:16

应用开发父自定义组件

2022-04-02 20:45:04

Hi3516开发板操作系统鸿蒙

2022-02-14 14:14:02

鸿蒙数据可视化JS

2022-04-14 11:53:38

HarmonyRelease鸿蒙

2011-12-25 20:19:32

Android 4.0

2022-02-24 16:00:59

Ability鸿蒙JS

2023-02-13 15:54:49

点赞
收藏

51CTO技术栈公众号