Unity Mono异常崩溃Assertion at mini-arm.c:2634

发表于2017-11-18
评论0 2.7k浏览

随着项目越来越大,碰到的很难解决的Bug也越来越多了。两个月之前,偶然发现游戏APK打开的时候会抛出错误然后崩溃:

03-08 12:21:18.201: A/mono(6873): * Assertion at mini-arm.c:2634, condition `pdata.found == 1' not met  

其实,这是碰到到了Unity的Bug。




但是当我更新了一个Unity的版本之后,发现这个Bug依旧,而且Unity论坛上也没有技术人员进行反馈,所以一直搁置。


但是随着项目越往后,发现游戏崩溃越来越频繁了,切场景就崩溃,组队也崩溃。让我很难受。

那段时间正好弄热更,所以就把Mono的源代码修改了一下,将 mini-arm.c 里面exit的地方注释掉了,转为打出一个log。


这样游戏崩溃少了,但是转而就变成游戏各种无响应。

转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn http://www.liveslives.com

这就和微软解决了蓝屏的问题一样。


对于这个问题,我也比较无奈,一直到这两天同事频繁反馈游戏在登录界面卡住,一直在Loading转圈圈。这才发现问题的所在。


首先是对比下正常的发包 和 不正常卡住状态下的发包,发现在Loading卡住的情况下,Protobuf 序列化出错了,反序列化也出错了。


这才意识到可能和Protobuf有关系。


我们项目中的Protobuf是预编译成DLL的,所以我猜想,可能是Mono在读取DLL进行解释运行的时候,出了问题,可能是DLL文件太大?或者文件内容格式有什么不对。


于是我花了半个小时换成了直接使用cs 文件。再次出包测试就可以了。

转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn http://www.liveslives.com

所以如果出现 Assertion at mini-arm.c:2634, condition `pdata.found == 1' not met这种崩溃问题,很可能是 dll 出了问题哦。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引