6.5 KiB
6.5 KiB
空引用异常
- 分类:blocking
- Issue 数:1
0.7.3f最近一天次数:1- 设备数合计:1
- 报告生成:2026-06-12 11:47:43
Issue
| Issue | 类型 | 次数 | 设备 | 最近上报 | 消息 |
|---|---|---|---|---|---|
| be8ba33741c7c959e4bff388decf5877 | NullReferenceException | 1 | 1 | 2026-06-12 08:18:49 | Object reference not set to an instance of an object. |
设备上下文
be8ba33741c7c959e4bff388decf5877
- 样本 CrashId:
7997bf30a7de4592ba275e94beb9aa2c - 样本 DeviceId:
fc-5c-ee-24-76-6f - 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 08:18:49 | be8ba33741c7c959e4bff388decf5877 | ||
| 2026-06-12 08:18:49 | 3b1873b47fcdc15a0284798ea83be004 | ||
| 2026-06-12 08:12:46 | 9b415b4bbb546c66eba3a6b67f916d35 | ||
| 2026-06-11 20:55:53 | 6ff1f0f506a936917fe66abad560829d | ||
| 2026-06-11 18:42:48 | 01eaa6aefd9162eccc930c2450a63779 | ||
| 2026-06-10 20:18:08 | bb81bce180d8672f500aa9f2021ec9f8 | ||
| 2026-06-10 20:03:53 | bb81bce180d8672f500aa9f2021ec9f8 | ||
| 2026-06-10 19:59:22 | 9b415b4bbb546c66eba3a6b67f916d35 |
代码位置
- 第三方崩溃栈入口:
Unity/Assets/Plugins/Animancer/AnimancerComponent.cs:244,OnDisable()根据DisableAction进入Stop()。 - 第三方停止链路:
Unity/Assets/Plugins/Animancer/AnimancerComponent.cs:571->Unity/Assets/Plugins/Animancer/Internal/Core/AnimancerLayer.cs:785->Unity/Assets/Plugins/Animancer/Internal/Core/AnimancerState.cs:356。 - 第三方空引用读点:
Unity/Assets/Plugins/Animancer/Internal/Core/AnimancerState.cs:561,NormalizedTime读取Length/Time时触发最终NullReferenceException。 - 项目侧候选触发入口:所有“播放 FadeOut 后
SetActive(false)/销毁挂 Animancer 的 UI 对象”的路径,优先看Unity/Assets/Scripts/TH1_UI/View/Base/View.cs:148、Unity/Assets/Scripts/TH1_UI/Core/CommonUI.cs:70、Unity/Assets/Scripts/TH1_UI/View/Common/UIConfirmPopupMono.cs:58。 - 同设备同秒伴随症状:
Releasing render texture that is set as Camera.targetTexture!。项目中可见的目标纹理绑定在Unity/Assets/BundleResources/Prefab/UI/Info/UIInfoGridInfo.prefab:2284、:6909,快速开关入口在Unity/Assets/Scripts/TH1_UI/View/Info/UIInfoGridInfoView.cs:302、:563。这条目前只能作为伴随症状,不能直接证明为 Animancer NRE 根因。
解码结论
- OPS 反混淆命中为 0,因为这条栈没有项目混淆符号,CrashSight 已显示完整第三方 Animancer 调用链。
- 崩溃家族归并为“Animancer 组件禁用时 Stop 链路空引用”:Unity 禁用某个挂有
AnimancerComponent的对象时进入AnimancerComponent.OnDisable(),默认DisableAction.Stop调用Stop(),随后逐层停止AnimancerLayer/AnimancerState,最终在AnimancerState.NormalizedTime读时间/长度时空引用。 - 设备上下文只暴露最终上报和同设备 ERROR 序列,
hasLogFile=false,缺少完整 Unity 日志。因此本报告能确认“禁用/销毁 Animancer 对象触发第三方 Stop 链路 NRE”,但不能唯一定位是哪一个 UI 实例触发。 - 同设备同一秒还有高频
Releasing render texture that is set as Camera.targetTexture!,说明该玩家当时也发生了预览相机/RenderTexture 生命周期问题;它和本 NRE 可能同属 UI/资源关闭时序问题,但当前样本不能证明二者有直接因果关系。
判断
这是阻断类,因为 CrashSight 行或 LogError 包装内容中存在真实异常类型、异常对象或调用栈;不是单纯业务状态诊断。
本批样本 hasLogFile=false,API 能拿到的是最终上报内容和同设备 ERROR 上报序列,不包含完整 Unity 运行日志;根因上下文按可见上报链路记录。
建议
优先复现“打开/关闭带 Animancer 淡入淡出的弹窗或视图时立刻切换页面、销毁视图、退出场景”的路径;重点检查 UI 关闭时是否在 Animancer 内部仍有无效 state/playable 时触发 OnDisable Stop。若要修复,建议先在项目侧统一封装 UI 关闭前的 Animancer 停止/解绑策略,避免直接改第三方 Animancer 源码。