Unity 报错GetThreadContexFailed终极解决办法 Fatal error in GC

前言

在这里插入图片描述
…熟悉不? 闹心吗?头疼吧?


最近在部署项目到现场主机的时候,经常遇到遇到GetThreadContexFailed这样的报错,因为机子装了特殊软件所以无法远程操作,导致我们工程师机票来回飞,甚是苦逼…

这是个典型早期unity版本开发的程序才会有的错误,它的出现极其不稳定,然而一出现就是大崩溃…运行数据全丢根本无法挽回…场面一度很尴尬!

有时候这个错误在把杀毒软件退出后会得到缓解。如果你短时间解决不掉这个问题可以让客户先手动把杀软卸载咯凑合用一段时间。。。。

部分win10系统会自带Windows Defener!这玩意关不掉!而且好像将程序添加进白名单也没啥用!


原因

这里具体操作请参考这篇帖子
排查和解决Unity 2018.3.6f1的“GetThreadContext failed”错误


经过上面帖子的作者一顿神操作,成功定位到了问题所在!
原因是mono_2_0_bdwgc.dll这个家伙除了问题,它是Boehm-Demers-Weiser垃圾回收器的一个实现。
这个BUG在2019年2月份修复了,所以要么你升级Unity要么自己手动编译这个动态库。。。

解决

方案1[推荐]

干脆 简单 粗暴 的解决方式:把项目升级到Unity 2019.3.x以上再发布就好了.

方案2

这里提供一个我用2019.3.11f1打包出来的mono_2_0_bdwgc.dll,大家可以拿去尝试替换一下看看好不好用。。。

链接:https://pan.baidu.com/s/14W_M-Gxa4YdXLy28H6Xr8g 提取码:d5s4

方案3

如果你用了很多插件,升级版本也会是一个不小的挑战,因为API变了可能会导致它报一大堆错误。。。
如果前两个方案都没法解决,请尝试上面帖子的编译操作(太麻烦我没试过…)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值