最近项目上线googleplay,需要打64位包,由于unity l2cpp打包比mono慢很多,因此前期开发过程中都是用的mono打的32位包进行测试.结果64位包出来后发生各种莫名其妙的卡死,尤其是重载场景以后,几乎必然出现
连上androidstudio查询日志,发现卡死的时候触发了bugly,难道是bugly的bug导致的?
于是决定暂时去掉bugly,结果发现原来会触发卡死的地方换成直接闪退了,看来bugly还真是有些影响.
但为什么会闪退呢?继续找问题,去掉bugly后会得到一些没什么分析价值的崩溃堆栈信息:
这些信息对排查问题并没有多少帮助.
通过搜索后发现有同学遇到类似的问题:
unity android64位闪退:
https://www.jianshu.com/p/9fa3e747a3b1
根据上文的提示,再去仔细看了看崩溃日志,并没找到libtolua相关的信息,难道是其它问题?
在没有更多头绪的前提下,我到tolua_runtime的github上去看了看,惊喜的发现在19年8月8日的时候,作者commit了一次提交:
修复arm64问题
@topameng
topameng committed on 8 Aug
https://github.com/topameng/tolua_runtime
喜出望外!
我用的是6月的版本,看来还真有可能是tolua运行库导致的.
于是马上动手重新编译libtolua runtime运行库,打包,测试,一切ok!
自此解决了这个问题.
在排查问题的过程中,顺便研究了bugly死锁有可能导致卡死的问题: