2026-06-12 17:56:35 +08:00

11 KiB
Raw Blame History

空引用异常

  • 分类blocking
  • Issue 数4
  • 0.7.3f 最近一天次数12
  • 设备数合计11
  • 报告生成2026-06-12 15:50:49

Issue

Issue 类型 次数 设备 最近上报 消息
dc1340f866d020b4b560a92559c89a21 NullReferenceException 5 4 2026-06-12 15:31:20 Object reference not set to an instance of an object.
0b41041d271c3ca1128d6f10e46b27b2 NullReferenceException 3 3 2026-06-12 15:31:04 Object reference not set to an instance of an object.
be8ba33741c7c959e4bff388decf5877 NullReferenceException 3 3 2026-06-12 15:14:07 Object reference not set to an instance of an object.
0c808432af82e7b66883205719dbb199 NullReferenceException 1 1 2026-06-12 12:42:42 Object reference not set to an instance of an object.

设备上下文

dc1340f866d020b4b560a92559c89a21

  • 样本 CrashIdd034b91bdf6d4bd38179a5468c277dd4
  • 样本 DeviceId00-ff-fb-5d-e8-e7
  • CrashSight 附带日志文件:False

最终上报内容:

NullReferenceException
Object reference not set to an instance of an object.
TMPro.TMP_SubMeshUI.UpdateMaterial () (at <00000000000000000000000000000000>.0)
TMPro.TMP_SubMeshUI.SetMaterialDirty () (at <00000000000000000000000000000000>.0)
UnityEngine.UI.MaskableGraphic.OnDisable () (at <00000000000000000000000000000000>.0)
TMPro.TMP_SubMeshUI.OnDisable () (at <00000000000000000000000000000000>.0)

TMPro.TMP_SubMeshUI.UpdateMaterial () (at <00000000000000000000000000000000>.0)
TMPro.TMP_SubMeshUI.SetMaterialDirty () (at <00000000000000000000000000000000>.0)
UnityEngine.UI.MaskableGraphic.OnDisable () (at <00000000000000000000000000000000>.0)
TMPro.TMP_SubMeshUI.OnDisable () (at <00000000000000000000000000000000>.0)

TMPro.TMP_SubMeshUI.UpdateMaterial () (at <00000000000000000000000000000000>.0)
TMPro.TMP_SubMeshUI.SetMaterialDirty () (at <00000000000000000000000000000000>.0)
UnityEngine.UI.MaskableGraphic.OnDisable () (at <00000000000000000000000000000000>.0)
TMPro.TMP_SubMeshUI.OnDisable () (at <00000000000000000000000000000000>.0)

NullReferenceException
Object reference not set to an instance of an object.
TMPro.TMP_SubMeshUI.UpdateMaterial () (at <00000000000000000000000000000000>.0)
TMPro.TMP_SubMeshUI.SetMaterialDirty () (at <00000000000000000000000000000000>.0)
UnityEngine.UI.MaskableGraphic.OnDisable () (at <00000000000000000000000000000000>.0)
TMPro.TMP_SubMeshUI.OnDisable () (at <00000000000000000000000000000000>.0)

同设备最近 ERROR 上报序列:

时间 Issue 类型 消息
2026-06-12 15:38:25 115622af2c5f78d14b4e6b900ba1d151
2026-06-12 15:38:25 12dcc82a69446ab0f1cb4caf44b0579a
2026-06-12 15:38:24 ed493d4b6926c3bb5efe569a5db211e3
2026-06-12 15:38:24 5506094b5e9df26bc4d5fd90349178cb
2026-06-12 15:38:24 b36fb8882dd4aabcf8618737d0ec5a65
2026-06-12 15:31:20 dc1340f866d020b4b560a92559c89a21
2026-06-12 15:31:20 5bf29273f5c83382e8a559c3a51c64b1
2026-06-12 15:31:04 dc1340f866d020b4b560a92559c89a21

0b41041d271c3ca1128d6f10e46b27b2

  • 样本 CrashId5ad98ebcb8f44bc39580417051d745bb
  • 样本 DeviceId00-ff-fb-5d-e8-e7
  • CrashSight 附带日志文件:False

最终上报内容:

NullReferenceException
Object reference not set to an instance of an object.
TMPro.TMP_SubMeshUI.UpdateMaterial () (at <00000000000000000000000000000000>.0)
TMPro.TMP_SubMeshUI.SetMaterialDirty () (at <00000000000000000000000000000000>.0)
UnityEngine.UI.MaskUtilities.NotifyStencilStateChanged (UnityEngine.Component mask) (at <00000000000000000000000000000000>.0)
UnityEngine.UI.MaskableGraphic.OnDisable () (at <00000000000000000000000000000000>.0)
UnityEngine.UI.Image.OnDisable () (at <00000000000000000000000000000000>.0)

TMPro.TMP_SubMeshUI.UpdateMaterial () (at <00000000000000000000000000000000>.0)
TMPro.TMP_SubMeshUI.SetMaterialDirty () (at <00000000000000000000000000000000>.0)
UnityEngine.UI.MaskUtilities.NotifyStencilStateChanged (UnityEngine.Component mask) (at <00000000000000000000000000000000>.0)
UnityEngine.UI.MaskableGraphic.OnDisable () (at <00000000000000000000000000000000>.0)
UnityEngine.UI.Image.OnDisable () (at <00000000000000000000000000000000>.0)

TMPro.TMP_SubMeshUI.UpdateMaterial () (at <00000000000000000000000000000000>.0)
TMPro.TMP_SubMeshUI.SetMaterialDirty () (at <00000000000000000000000000000000>.0)
UnityEngine.UI.MaskUtilities.NotifyStencilStateChanged (UnityEngine.Component mask) (at <00000000000000000000000000000000>.0)
UnityEngine.UI.MaskableGraphic.OnDisable () (at <00000000000000000000000000000000>.0)
UnityEngine.UI.Image.OnDisable () (at <00000000000000000000000000000000>.0)

NullReferenceException
Object reference not set to an instance of an object.
TMPro.TMP_SubMeshUI.UpdateMaterial () (at <00000000000000000000000000000000>.0)
TMPro.TMP_SubMeshUI.SetMaterialDirty () (at <00000000000000000000000000000000>.0)
UnityEngine.UI.MaskUtilities.NotifyStencilStateChanged (UnityEngine.Component mask) (at <00000000000000000000000000000000>.0)
UnityEngine.UI.MaskableGraphic.OnDisable () (at <00000000000000000000000000000000>.0)
UnityEngine.UI.Image.OnDisable () (at <00000000000000000000000000000000>.0)

同设备最近 ERROR 上报序列:

时间 Issue 类型 消息
2026-06-12 15:38:25 115622af2c5f78d14b4e6b900ba1d151
2026-06-12 15:38:25 12dcc82a69446ab0f1cb4caf44b0579a
2026-06-12 15:38:24 ed493d4b6926c3bb5efe569a5db211e3
2026-06-12 15:38:24 5506094b5e9df26bc4d5fd90349178cb
2026-06-12 15:38:24 b36fb8882dd4aabcf8618737d0ec5a65
2026-06-12 15:31:20 dc1340f866d020b4b560a92559c89a21
2026-06-12 15:31:20 5bf29273f5c83382e8a559c3a51c64b1
2026-06-12 15:31:04 dc1340f866d020b4b560a92559c89a21

be8ba33741c7c959e4bff388decf5877

  • 样本 CrashId7cc68a71c55b4abbab7c7cdb370d6a46
  • 样本 DeviceIdd4-93-90-2e-72-b4
  • CrashSight 附带日志文件:False

最终上报内容:

NullReferenceException
Object reference not set to an instance of an object.
Animancer.AnimancerState.get_NormalizedTime () (at <00000000000000000000000000000000>.0)
Animancer.AnimancerState.set_Time (System.Single value) (at <00000000000000000000000000000000>.0)
Animancer.AnimancerState.Stop () (at <00000000000000000000000000000000>.0)
Animancer.AnimancerLayer.Stop () (at <00000000000000000000000000000000>.0)
Animancer.AnimancerComponent.Stop () (at <00000000000000000000000000000000>.0)
Animancer.AnimancerComponent.OnDisable () (at <00000000000000000000000000000000>.0)

Animancer.AnimancerState.get_NormalizedTime () (at <00000000000000000000000000000000>.0)
Animancer.AnimancerState.set_Time (System.Single value) (at <00000000000000000000000000000000>.0)
Animancer.AnimancerState.Stop () (at <00000000000000000000000000000000>.0)
Animancer.AnimancerLayer.Stop () (at <00000000000000000000000000000000>.0)
Animancer.AnimancerComponent.Stop () (at <00000000000000000000000000000000>.0)
Animancer.AnimancerComponent.OnDisable () (at <00000000000000000000000000000000>.0)

Animancer.AnimancerState.get_NormalizedTime () (at <00000000000000000000000000000000>.0)
Animancer.AnimancerState.set_Time (System.Single value) (at <00000000000000000000000000000000>.0)
Animancer.AnimancerState.Stop () (at <00000000000000000000000000000000>.0)
Animancer.AnimancerLayer.Stop () (at <00000000000000000000000000000000>.0)
Animancer.AnimancerComponent.Stop () (at <00000000000000000000000000000000>.0)
Animancer.AnimancerComponent.OnDisable () (at <00000000000000000000000000000000>.0)

NullReferenceException
Object reference not set to an instance of an object.
Animancer.AnimancerState.get_NormalizedTime () (at <00000000000000000000000000000000>.0)
Animancer.AnimancerState.set_Time (System.Single value) (at <00000000000000000000000000000000>.0)
Animancer.AnimancerState.Stop () (at <00000000000000000000000000000000>.0)
Animancer.AnimancerLayer.Stop () (at <00000000000000000000000000000000>.0)
Animancer.AnimancerComponent.Stop () (at <00000000000000000000000000000000>.0)
Animancer.AnimancerComponent.OnDisable () (at <00000000000000000000000000000000>.0)

同设备最近 ERROR 上报序列:

时间 Issue 类型 消息
2026-06-12 15:14:07 be8ba33741c7c959e4bff388decf5877
2026-06-12 15:14:06 5bf29273f5c83382e8a559c3a51c64b1
2026-06-12 15:10:32 03e368c38bf498c0ede3d3d6b1a4ba9
2026-06-12 15:05:27 3b1873b47fcdc15a0284798ea83be004
2026-06-12 15:05:26 5bf29273f5c83382e8a559c3a51c64b1
2026-06-12 14:23:04 3b1873b47fcdc15a0284798ea83be004
2026-06-12 14:05:08 03e368c38bf498c0ede3d3d6b1a4ba9
2026-06-12 13:57:01 5bf29273f5c83382e8a559c3a51c64b1

代码位置

  • 未通过固定文本直接定位;需要结合解码栈继续追。

解码结论

反混淆命中 0,这些栈不是业务混淆名,而是 Unity/TMP/Animancer 的明文运行时栈。这个报告里的 4 个 Issue 不能当成同一个根因处理:

  • dc1340f866d020b4b560a92559c89a210b41041d271c3ca1128d6f10e46b27b20c808432af82e7b66883205719dbb199:共同栈顶是 TMPro.TMP_SubMeshUI.UpdateMaterial -> SetMaterialDirty -> MaskableGraphic/Image.OnDisable,说明崩在 UI 对象禁用/销毁期间TMP 子网格刷新材质时内部对象为空。0c808... 同设备同一秒还出现多语言资源加载为空,说明这条至少和 UI 销毁/重建、多语言文本刷新处在同一批操作里;但样本没有完整 Player.log不能证明多语言 null 是 TMP NRE 的直接原因。
  • be8ba33741c7c959e4bff388decf5877:共同栈顶是 AnimancerState.get_NormalizedTime -> Stop -> AnimancerComponent.OnDisable,和 TMP 无关;这是动画组件禁用时 Stop() 过程中空引用,仍然更像 UI/GameObject disable 触发的第三方组件生命周期问题。

因此建议拆成两个修复方向:一是排查含 TMP 子网格的 UI 销毁/禁用流程,尤其是同设备伴随多语言加载失败的页面;二是单独排查带 Animancer 的对象在禁用时是否有空 Clip/State 或销毁顺序问题。

判断

这是阻断类,因为 CrashSight 行或 LogError 包装内容中存在真实异常类型、异常对象或调用栈;不是单纯业务状态诊断。 本批样本 hasLogFile=falseAPI 能拿到的是最终上报内容和同设备 ERROR 上报序列,不包含完整 Unity 运行日志;根因上下文按可见上报链路记录。

建议

优先按次数最高的 Issue 样本复现并修复;若同设备上报序列中出现更早的异常,应以更早异常作为源头处理。