问题描述:
一直未在自家电脑上使用过Unity。当然是因为Unity在某一次系统更新后怎么都会启动失败。
由于使用Unity并不是刚需,直到我前阵子把这个crash report上去。
先直接贴QA团队的解决方案:
The issue is most likely caused by the license files which don't have access permissions or there are corrupted files under AppData folders.
I'd recommend doing the following:
- Allow full control for your user on C:\ProgramData\Unity folder. (RMB>Properties>Security)
- If Unity still crashes, delete license files inside C:\ProgramData\Unity folder.
- Also as a potential fix, you could also delete all of the Unity files in %appdata% (C:\Users\*USER*\AppData\Local or LocalLow or Roaming)
怎么才能发现这个问题:
UnityEditor的crash打开minidmp的调用堆栈是具备函数名字的(下发了pdb),从函数名字上来看:
是检验授权出现了问题,由于名字中还有网络相关的字眼。一开始我以为是**导致了失败。我就选择了放弃研究。但是后来通过代理也没启动成功,本想着抱着嘲笑Unity的心态点了上传dump。
结果QA很快给我发来了反馈,这是我收到的最快的Unity Bug反馈:)
但是我应该使用Processmonitor检查一下Unity的文件读取情况,但是我未进行尝试。
这个问题的核心是在于:
之前版本的Unity在启动时崩溃是不会弹出crash report的窗口!
Unity是通过单独的进程来监控崩溃的,但是这个进程会在授权校验后才会被启动!