📢 【三方库】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() 导致异常。此外,CVMaskElementviewData[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
Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐