【三方库】lottieArkTS v2.0.31 鸿蒙平台稳定性提升
·
📢 【三方库】lottieArkTS v2.0.31 鸿蒙平台稳定性提升
lottieArkTS v2.0.31 已发布。本次升级聚焦该库稳定性提升,增强边界场景健壮性,兼容升级,开发者无需修改现有代码即可享受本次改进。推荐所有该库用户升级至本版本。
版本概览
| 类型 | 内容 |
|---|---|
| 稳定性 | 增强空 canvasShadow / dynamicProperties 读取属性时的健壮性 #353、增强空 elements[i] / assetData 读取属性时的健壮性 #348 |
稳定性提升
增强空 canvasShadow / dynamicProperties 读取属性时的健壮性 [#353]
问题:当动画数据中 canvasShadow 对象为空或 dynamicProperties 数组为空时,代码直接读取其属性导致异常抛出,在特定动画 JSON 下引发崩溃。
修复:
CVShapeElement.renderShapeTransform新增if (!groupTransform || !groupTransform.op) return;空值校验,避免空对象属性访问。DataUtil等工具类对canvasShadow/dynamicProperties增加空值保护,空值时跳过相关逻辑而非直接读取。
增强空 elements[i] / assetData 读取属性时的健壮性 [#348]
问题:当 this.elements[i] 为空或 assetData 为空时,CVCompElement 直接调用 renderFrame()、CVImageElement 直接调用 getAsset() 导致异常。此外,CVMaskElement 在 viewData[i].v 为空时继续访问数组属性也会崩溃。
修复:
CVCompElement.renderInnerContent:移除this.completeLayers ||短路判断,改为直接校验this.elements[i]是否存在后再调用renderFrame()。CVImageElement构造函数新增if (!this.assetData)空值保护,空值时初始化空对象并提前返回,避免getAsset(undefined)异常。CVMaskElement.renderFrame使用可选链data = this.viewData[i]?.v,并增加if (!data || !data.v || data.v.length === 0) continue;空数组校验。CVShapeElement.drawLayer增加对currentStyle?.preTransforms?.finalTransform的空值校验。
兼容性说明
- 无 Breaking Changes,API 接口保持不变。
- 仅内部实现优化,现有代码无需修改。
- 从 v2.0.30 起升级至 v2.0.31 均为兼容性升级。
升级方式
- 鸿蒙原生:
oh-package.json5→"@ohos/lottie": "^2.0.31",执行ohpm install。
相关链接
- 文档:https://gitcode.com/CPF-ApplicationTPC/lottieArkTS/blob/master/README.md
- CHANGELOG:https://gitcode.com/CPF-ApplicationTPC/lottieArkTS/blob/master/CHANGELOG.md
- 反馈:https://gitcode.com/CPF-ApplicationTPC/lottieArkTS/issues
更多推荐



所有评论(0)