13 KiB
Raw Blame History

空引用异常

  • 分类blocking
  • Issue 数4
  • 0.7.2c 最近一天次数22
  • 设备数合计7
  • 报告生成2026-06-05 12:00:37

Issue

Issue 类型 次数 设备 最近上报 消息
884629e90112c7452f55ff68d6d527d1 UnityLogError 2 1 2026-06-05 10:57:19 OnMessageReceived 处理失败, bytes: 7, error: System.NullReferenceException: Object reference not set to an instance of an object. at gn.gyy (cfo a, System.UInt32 b) [0x00000] in <00000000000000000000000000000000>:0 at cxb.ggn (System.Byte[] a) [0x00000] in <00000000000000000000000000000000>:0 at bae.lil (Steamworks.CSteamID a, System.Byte[] b) [0x00000] in <000…
e07b4cd98c8d445482de4f5797692528 UnityLogError 16 2 2026-06-04 22:59:08 OnMessageReceived 处理失败, bytes: 154, error: System.NullReferenceException: Object reference not set to an instance of an object. at cxb.ggq (dwx a) [0x00000] in <00000000000000000000000000000000>:0 at cxb.ggn (System.Byte[] a) [0x00000] in <00000000000000000000000000000000>:0 at bae.lil (Steamworks.CSteamID a, System.Byte[] b) [0x00000] in <00000000000000000…
b1862dd4512aac67b6592e4260c8aaad UnityLogError 3 3 2026-06-04 19:45:28 Timer任务执行异常: 错误信息: REISEN ILLUSION ADDUNITDATA 异常类型: System.NullReferenceException 异常信息: Object reference not set to an instance of an object. 调用堆栈: at fj.bgi () [0x00000] in <00000000000000000000000000000000>:0 at cfo+gl.bcg () [0x00000] in <00000000000000000000000000000000>:0 at i.oj () [0x00000] in <00000000000000000000000000000000>:0 at TH1_Logic.Core.M…
d97862df50075837ed1a52e5ed40b2fb UnityLogError 1 1 2026-06-04 12:05:55 Timer任务执行异常: 错误信息: UIOutsideSelectController 异常类型: System.NullReferenceException 异常信息: Object reference not set to an instance of an object. 调用堆栈: at era.bvs () [0x00000] in <00000000000000000000000000000000>:0 at erl.hyb () [0x00000] in <00000000000000000000000000000000>:0 at TH1_Logic.Core.Main.grl () [0x00000] in <00000000000000000000000000000000>:0 at T…

设备上下文

884629e90112c7452f55ff68d6d527d1

  • 样本 CrashId29fd8bb2c70543bfbf722b204ac52bc4
  • 样本 DeviceIda8-5e-45-50-a7-35
  • CrashSight 附带日志文件:False

最终上报内容:

UnityLogError
OnMessageReceived 处理失败, bytes: 7, error: System.NullReferenceException: Object reference not set to an instance of an object.
  at gn.gyy (cfo a, System.UInt32 b) [0x00000] in <00000000000000000000000000000000>:0 
  at cxb.ggn (System.Byte[] a) [0x00000] in <00000000000000000000000000000000>:0 
  at bae.lil (Steamworks.CSteamID a, System.Byte[] b) [0x00000] in <00000000000000000000000000000000>:0 
  at bae.lim (Steamworks.CSteamID a, System.Byte[] b) [0x00000] in <00000000000000000000000000000000>:0 
  at bae.dbc (Steamworks.CSteamID a, System.Byte[] b) [0x00000] in <00000000000000000000000000000000>:0 
  at bae.frx (Steamworks.CSteamID a, Steamworks.HSteamNetConnection b) [0x00000] in <00000000000000000000000000000000>:0 
  at bae.frw () [0x00000] in <00000000000000000000000000000000>:0 
  at bag.fud () [0x00000] in <00000000000000000000000000000000>:0 
  at TH1_Logic.Core.Main.Update () [0x00000] in <00000000000000000000000000000000>:0 
UnityEngine.Debug.LogError(Object)
hk.LogError(String, Object)
cxb.ggn(Byte[])
bae.lil(CSteamID, Byte[])
bae.lim(CSteamID, Byte[])
bae.dbc(CSteamID, Byte[])
bae.frx(CSteamID, HSteamNetConnection)
bae.frw()
bag.fud()
TH1_Logic.Core.Main.Update()

UnityEngine.Debug.LogError(Object)
hk.LogError(String, Object)
cxb.ggn(Byte[])
bae.lil(CSteamID, Byte[])
bae.lim(CSteamID, Byte[])
bae.dbc(CSteamID, Byte[])
bae.frx(CSteamID, HSteamNetConnection)
bae.frw()
bag.fud()
TH1_Logic.Core.Main.Update()

UnityEngine.Debug.LogError(Object)
hk.LogError(String, Object)
cxb.ggn(Byte[])
bae.lil(CSteamID, Byte[])
bae.lim(CSteamID, Byte[])
bae.dbc(CSteamID, Byte[])
bae.frx(CSteamID, HSteamNetConnection)
bae.frw()
bag.fud()
TH1_Logic.Core.Main.Update()

UnityLogError
OnMessageReceived 处理失败, bytes: 7, error: System.NullReferenceException: Object reference not set to an instance of an object.
  at gn.gyy (cfo a, System.UInt32 b) [0x00000] in <00000000000000000000000000000000>:0 
  at cxb.ggn (System.Byte[] a) [0x00000] in <00000000000000000000000000000000>:0 
  at bae.lil (Steamworks.CSteamID a, System.Byte[] b) [0x00000] in <00000000000000000000000000000000>:0 
  at bae.lim (Steamworks.CSteamID a, 
...

同设备最近 ERROR 上报序列:

时间 Issue 类型 消息
2026-06-05 11:00:38 10d4df507992c1a66a90693df20b21c3
2026-06-05 10:57:37 d7a74e6e95985e97e0bbecc7de0c0f44
2026-06-05 10:57:35 dbce2880e5ad9287fcca2bf271f97622
2026-06-05 10:57:33 3f7acd62a44f7eb3e259181d5a063d04
2026-06-05 10:57:30 eef7fa7503168965448a647bfbe7ae65
2026-06-05 10:57:28 e411b59aba2e1015cd27950bef1e17e4
2026-06-05 10:57:26 afec6671a017afaa004d0c956b773ca4
2026-06-05 10:57:24 37c3a6f1b4b5b39220ee5ed7563118bf

e07b4cd98c8d445482de4f5797692528

  • 样本 CrashId7ef110ab61f24427b8ce8d0177cd768c
  • 样本 DeviceId00-72-ee-64-0d-fb
  • CrashSight 附带日志文件:False

最终上报内容:

UnityLogError
OnMessageReceived 处理失败, bytes: 154, error: System.NullReferenceException: Object reference not set to an instance of an object.
  at cxb.ggq (dwx a) [0x00000] in <00000000000000000000000000000000>:0 
  at cxb.ggn (System.Byte[] a) [0x00000] in <00000000000000000000000000000000>:0 
  at bae.lil (Steamworks.CSteamID a, System.Byte[] b) [0x00000] in <00000000000000000000000000000000>:0 
  at bae.lim (Steamworks.CSteamID a, System.Byte[] b) [0x00000] in <00000000000000000000000000000000>:0 
  at bae.dbc (Steamworks.CSteamID a, System.Byte[] b) [0x00000] in <00000000000000000000000000000000>:0 
  at bae.frx (Steamworks.CSteamID a, Steamworks.HSteamNetConnection b) [0x00000] in <00000000000000000000000000000000>:0 
  at bae.frw () [0x00000] in <00000000000000000000000000000000>:0 
  at bag.fud () [0x00000] in <00000000000000000000000000000000>:0 
  at TH1_Logic.Core.Main.Update () [0x00000] in <00000000000000000000000000000000>:0 
UnityEngine.Debug.LogError(Object)
hk.LogError(String, Object)
cxb.ggn(Byte[])
bae.lil(CSteamID, Byte[])
bae.lim(CSteamID, Byte[])
bae.dbc(CSteamID, Byte[])
bae.frx(CSteamID, HSteamNetConnection)
bae.frw()
bag.fud()
TH1_Logic.Core.Main.Update()

UnityEngine.Debug.LogError(Object)
hk.LogError(String, Object)
cxb.ggn(Byte[])
bae.lil(CSteamID, Byte[])
bae.lim(CSteamID, Byte[])
bae.dbc(CSteamID, Byte[])
bae.frx(CSteamID, HSteamNetConnection)
bae.frw()
bag.fud()
TH1_Logic.Core.Main.Update()

UnityEngine.Debug.LogError(Object)
hk.LogError(String, Object)
cxb.ggn(Byte[])
bae.lil(CSteamID, Byte[])
bae.lim(CSteamID, Byte[])
bae.dbc(CSteamID, Byte[])
bae.frx(CSteamID, HSteamNetConnection)
bae.frw()
bag.fud()
TH1_Logic.Core.Main.Update()

UnityLogError
OnMessageReceived 处理失败, bytes: 154, error: System.NullReferenceException: Object reference not set to an instance of an object.
  at cxb.ggq (dwx a) [0x00000] in <00000000000000000000000000000000>:0 
  at cxb.ggn (System.Byte[] a) [0x00000] in <00000000000000000000000000000000>:0 
  at bae.lil (Steamworks.CSteamID a, System.Byte[] b) [0x00000] in <00000000000000000000000000000000>:0 
  at bae.lim (Steamworks.CSteamID a, System.Byte[] b) [0x00000] i
...

同设备最近 ERROR 上报序列:

时间 Issue 类型 消息
2026-06-04 23:29:47 f189dab3ce7455ff753c0f1afe95256a
2026-06-04 23:25:14 4de7d427f16ede45dbd3693fc3431ac3
2026-06-04 23:25:13 1df80dbcaf6f1f71cbd77fff64532361
2026-06-04 23:25:10 01eaa6aefd9162eccc930c2450a63779
2026-06-04 23:25:10 81a5e2896daabc7005cd79ae522de4bf
2026-06-04 23:25:10 dbce2880e5ad9287fcca2bf271f97622
2026-06-04 23:25:09 1d2092e8267a158d39aa1a040041020d
2026-06-04 23:25:09 2cb3d67ddfe0d9587abd02390f5de041

b1862dd4512aac67b6592e4260c8aaad

  • 样本 CrashIdeb01a4c585b141c89d517a4b47e0d043
  • 样本 DeviceIdc0-a8-25-e2-00-00
  • CrashSight 附带日志文件:False

最终上报内容:

UnityLogError
Timer任务执行异常:
错误信息: REISEN ILLUSION ADDUNITDATA
异常类型: System.NullReferenceException
异常信息: Object reference not set to an instance of an object.
调用堆栈:   at fj.bgi () [0x00000] in <00000000000000000000000000000000>:0 
  at cfo+gl.bcg () [0x00000] in <00000000000000000000000000000000>:0 
  at i.oj () [0x00000] in <00000000000000000000000000000000>:0 
  at TH1_Logic.Core.Main.Update () [0x00000] in <00000000000000000000000000000000>:0 
目标对象: cfo
UnityEngine.Debug.LogError(Object)
hk.LogError(String, Object)
i.oj()
TH1_Logic.Core.Main.Update()

UnityEngine.Debug.LogError(Object)
hk.LogError(String, Object)
i.oj()
TH1_Logic.Core.Main.Update()

UnityEngine.Debug.LogError(Object)
hk.LogError(String, Object)
i.oj()
TH1_Logic.Core.Main.Update()

UnityLogError
Timer任务执行异常:
错误信息: REISEN ILLUSION ADDUNITDATA
异常类型: System.NullReferenceException
异常信息: Object reference not set to an instance of an object.
调用堆栈:   at fj.bgi () [0x00000] in <00000000000000000000000000000000>:0 
  at cfo+gl.bcg () [0x00000] in <00000000000000000000000000000000>:0 
  at i.oj () [0x00000] in <00000000000000000000000000000000>:0 
  at TH1_Logic.Core.Main.Update () [0x00000] in <00000000000000000000000000000000>:0 
目标对象: cfo
UnityEngine.Debug.LogError(Object)
hk.LogError(String, Object)
i.oj()
TH1_Logic.Core.Main.Update()

同设备最近 ERROR 上报序列:

时间 Issue 类型 消息
2026-06-04 19:45:28 b1862dd4512aac67b6592e4260c8aaad
2026-06-04 19:19:09 bb81bce180d8672f500aa9f2021ec9f8
2026-06-04 19:15:21 10d4df507992c1a66a90693df20b21c3

代码位置

  • Unity/Assets/Scripts\TH1_Logic\Steam\GameNetReceiver.cs:114: private void OnReceivedActionConfirm(ActionConfirmMessage message)
  • Unity/Assets/Scripts\TH1_Logic\Steam\GameNetReceiver.cs:231: Main.PlayerLogic.EndPlayerTurn(Main.MapData, message.PlayerId);
  • Unity/Assets/Scripts\TH1_Logic\Player\PlayerLogic.cs:312: public void EndPlayerTurn(MapData map, uint playerId)
  • Unity/Assets/Scripts\TH1_Data\MapData.cs:1801: MapRenderer.Instance.RenderUpdateUnitMap();
  • Unity/Assets/Scripts\TH1_Renderer\MapRenderer.cs:435: public void RenderUpdateUnitMap()
  • Unity/Assets/Scripts\TH1_Logic\Core\Main.cs:195: public void InitMapAddtion()
  • Unity/Assets/Scripts\TH1_Core\Managers\PresentationManager.cs:61: public static void OnMatchStart()

解码结论

这个报告是 CrashSight/生成器按 NullReferenceException 合并的伞形家族,解码后并不是单一根因,应按 top frame 拆看:

  • 884629e9...GameNetReceiver.OnReceivedTurnEnd -> PlayerLogic.EndPlayerTurn,房主收到 7 bytes 的 TurnEnd 消息后直接用 Main.MapData 执行结束回合。样本同设备前序有网络发送、Action 版本/索引不一致、空多语言 ID 等 ERROR说明进入异常时主机同步状态已经不干净代码层风险点是 EndPlayerTurn 只校验 map.PlayerMap.GetPlayerDataByPlayerID,没有保护 map/Main.MapData/PlayerMap 在联网消息晚到或地图清理后的状态。
  • e07b4cd9...SimpleP2P.DeliverReceivedPayload -> GameNetReceiver.OnMessageReceived -> OnReceivedActionConfirm,处理 154 bytes 的 ActionConfirm 时空引用。可疑点集中在 LobbyManager.Instance.LobbyMain.MapData.Netmessage.ActionData.Param 或刷新后的参数对象API 样本没有完整 Unity log无法进一步确定是哪一个字段为空。
  • b1862dd4...MapData.AddUnitData 注册的 REISEN ILLUSION ADDUNITDATA 定时回调触发 MapRenderer.RenderUpdateUnitMap。回调执行时依赖 MapRenderer.InstanceMain.MapData.UnitMap,若地图/渲染器已切换或清理,会把单位新增的视觉刷新变成空引用。
  • d97862df...UIOutsideSelectController 定时路径进入 Main.InitMapAddtion -> PresentationManager.OnMatchStart -> UIAnnounceMajorEventController.Close,像是切换到战内时关闭旧公告任务或 presentation 队列时对象生命周期已失配。

因此本文件不应被理解为一个可一刀修复的根因,只是 4 个真实异常的汇总。共同阻断性在于它们都是捕获异常对象后通过 LogSystem.LogError 上报,且发生在联网消息、地图初始化或定时视觉回调等核心流程中。

判断

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

建议

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