Unity Mono异常崩溃Assertion at mini-arm.c:2634
随着项目越来越大,碰到的很难解决的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 出了问题哦。