2

OpenHarmony4.0Release无法调用高级组件问题分析-鸿蒙开发者社区-51CTO.COM

 6 months ago
source link: https://ost.51cto.com/posts/28700
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

最近学习北向应用开发,发现有个高级组件-子标题符合我的布局需求,但是调用的时候发生了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,​​找到了对应的源码:

OpenHarmony4.0Release无法调用高级组件问题分析-鸿蒙开发者社区

​发现​​subheader​​​是属于advanced_ui_component这个bundle,

OpenHarmony4.0Release无法调用高级组件问题分析-鸿蒙开发者社区

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

OpenHarmony4.0Release无法调用高级组件问题分析-鸿蒙开发者社区

查看advanced_ui_component下的文件夹,发现有个patches,里面有这么一个链接​​https://gitee.com/openharmony/productdefine_common/pulls/682​

,打开发现pr关闭了,查看源码修改,是有希望在组件里面添加高级组件的,但是

不知道什么原因没有合并

OpenHarmony4.0Release无法调用高级组件问题分析-鸿蒙开发者社区

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

OpenHarmony4.0Release无法调用高级组件问题分析-鸿蒙开发者社区

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

OpenHarmony4.0Release无法调用高级组件问题分析-鸿蒙开发者社区

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

OpenHarmony4.0Release无法调用高级组件问题分析-鸿蒙开发者社区
OpenHarmony4.0Release无法调用高级组件问题分析-鸿蒙开发者社区

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK