13 KiB
13 KiB
空引用异常
- 分类: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
- 样本 CrashId:
29fd8bb2c70543bfbf722b204ac52bc4 - 样本 DeviceId:
a8-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
- 样本 CrashId:
7ef110ab61f24427b8ce8d0177cd768c - 样本 DeviceId:
00-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
- 样本 CrashId:
eb01a4c585b141c89d517a4b47e0d043 - 样本 DeviceId:
c0-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.Lobby、Main.MapData.Net、message.ActionData.Param或刷新后的参数对象;API 样本没有完整 Unity log,无法进一步确定是哪一个字段为空。b1862dd4...:MapData.AddUnitData注册的REISEN ILLUSION ADDUNITDATA定时回调触发MapRenderer.RenderUpdateUnitMap。回调执行时依赖MapRenderer.Instance和Main.MapData.UnitMap,若地图/渲染器已切换或清理,会把单位新增的视觉刷新变成空引用。d97862df...:UIOutsideSelectController定时路径进入Main.InitMapAddtion -> PresentationManager.OnMatchStart -> UIAnnounceMajorEventController.Close,像是切换到战内时关闭旧公告任务或 presentation 队列时对象生命周期已失配。
因此本文件不应被理解为一个可一刀修复的根因,只是 4 个真实异常的汇总。共同阻断性在于它们都是捕获异常对象后通过 LogSystem.LogError 上报,且发生在联网消息、地图初始化或定时视觉回调等核心流程中。
判断
这是阻断类,因为 CrashSight 行或 LogError 包装内容中存在真实异常类型、异常对象或调用栈;不是单纯业务状态诊断。
本批样本 hasLogFile=false,API 能拿到的是最终上报内容和同设备 ERROR 上报序列,不包含完整 Unity 运行日志;根因上下文按可见上报链路记录。
建议
优先按次数最高的 Issue 样本复现并修复;若同设备上报序列中出现更早的异常,应以更早异常作为源头处理。