android 定位 闪退_Unity3D研究院之全方位定位Android闪退(九十三)

本文介绍了如何解决Unity3D在Android上的定位闪退问题,建议使用il2cpp打包并保留符号表以便于分析崩溃堆栈。通过adb工具提取日志以辅助定位bug,特别提到在QA测试时遇到的问题及解决方法,包括一键提取log的脚本和应对360手机助手占用adb端口的策略。
摘要由CSDN通过智能技术生成

首先强烈建议大家安卓打包一定要用il2cpp,我们项目对比了mono发现il2cpp闪退方面比mono少了很多。平常给QA打包推荐勾选Development Build 和 Autocontent Profiler 。这样如果发生了闪退可以直接从log中定位,或者真机连profiler。

我们来看一个闪退的日志

如下图所示,WorldSceneMgr.cs 是我们自己写的c#代码,这里已经可以直接定位在哪一行闪退,通过完整堆栈即可定位到此时的闪退是由于WorldSceneMgr.cs CheckEventGenerator方法调用了物理相关函数,导致unity的物理引擎挂了。

如果是releas正式包,那么在打包的时候必须要将我们自己写的c#代码生成的符号表.so保存下来。保存方法大家可以参考unity的文档

在闪退日志中查询到崩溃地址,使用addr2line即可还原出来。 详细方法同样可以参考unity的文档。

如果你的项目还在使用mono,同样也可以利用上面的方法还原出来崩溃堆栈。

可能大家都会接崩溃汇报的sdk,无论如何我们有带符号表的.so都可以还原崩溃堆栈。平常开发每天都会打包,但是版本号和包名都是一致的。但是每个包的.so文件都不一样,所以在崩溃汇报的时候还需要发送一个唯一的标志,用于日后来做区分。

后来我们又发现一个问题,QA在测试的时候有时候,他们会跑出来崩溃, 或者由于代码报错了导致界面异常或者逻辑异常。由于他们在报 bug的时候没有详细log日志,不太明确的bug技术只能靠猜来改。所以我们由给QA做了个一键提取log的工具。

如图下图所示,技术在自己的android sdk目录下拷贝出 adb.ex

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值