问题现象
在HarmonyOS应用开发中,聊天类应用在特定文本输入场景下可能出现页面卡死或应用闪退的问题。典型场景包括:开发者在聊天输入框中执行复制粘贴操作后,应用发生闪退且聊天页面卡死;应用接收到特殊文本消息后,打开聊天页面时出现卡死现象;在群聊场景中,用户收到特殊文本消息后,打开聊天页面同样出现卡死现象。
背景知识
聊天输入框通常使用TextInput或RichEditor组件实现文本输入功能,复制粘贴操作涉及系统剪贴板服务与文本组件的数据交互。当接收到包含特殊字符或超长文本的消息内容时,文本组件在渲染和布局测量阶段可能触发异常。相关组件的使用可参考TextInput组件和RichEditor组件。
问题定位
- 复现问题场景,分别在单聊和群聊中触发复制粘贴操作以及接收特殊文本消息,确认应用闪退和页面卡死现象均可稳定复现。
- 检查应用崩溃日志,定位闪退发生时的调用栈信息,确认崩溃点位于文本组件的渲染或布局测量逻辑中。
- 分析特殊文本内容的字符构成,确认特殊文本中包含导致文本测量或渲染异常的字符序列。
- 对比不同系统版本的表现,确认该问题在B130SP13之前的版本中存在,在B130SP13版本中已修复。
分析结论
核心原因是系统文本组件在处理特定特殊文本或复制粘贴数据时,渲染与布局测量逻辑存在缺陷,导致组件内部处理异常从而引发页面卡死或应用闪退。该问题属于系统侧已知缺陷,已在B130SP13版本中修复。
修改建议
升级系统版本至B130SP13及以上版本,该版本已修复文本组件在处理特殊文本和复制粘贴场景下的渲染异常问题,升级后即可解决聊天页面卡死及应用闪退现象。