cocos2d-x bugly崩溃报错修复心得

cocos2d-x bugly崩溃报错修复

崩溃问题

很多崩溃问题没法准确定位,方法是
1、上传符号表,可以解析到小部分的崩溃信息
2、查看更多报错记录,运气好可能在跟踪数据里找到crash_attach.log,extraMessage.txt。运气再好点可能定位到机型崩溃位置

崩溃原因归纳

1、内存不足

发生原因:

  • 1、启动的时候经常会出现小于200M;
  • 2、在运行过程中内存飙高超出手机支持范围

解决思路:

  • 对于启动崩溃目前没法解决;对于运行崩溃,清理掉占用较大而没有用到的内存

具体方法:

  • 1、对于游戏里某些尺寸较大(长或宽超过256)、颜色渐变不大的图片进行色深减半处理
  • 2、美术图片设计尽量减少空白区域,可以拆成多张的方式;界面图片尽量减少重叠,可以进行图片合并
  • 3、我们游戏在战斗里内存较大,可以在进战斗前清理主界面的内存,退回来的时候再重新加载,但此时不要一次性加载主界面,很可能会崩溃,因为同一帧加载图片的内存是翻倍的,可以考虑异步加载或者通过加载界面的方式先清理掉战斗内存,再加载主界面。
  • 4、除了图片也有可能是解析数据的时候,数据量源太大导致的
2、野指针

发生原因:

  • 代码问题,节点数据已经析构掉了,指针却还没有free

解决思路:

  • 节点数据清理之后一定要加上指针的的处理

具体方法:

  • 1、在lua层经常会调用removeAllChildren(),clear(),removeFromParent()等方法,指针一定要对p进行 p = nil, p = {}
3、贴图不存在

发生原因:

  • 用不存在的贴图去创建对象

解决思路:

  • 有可能是真的没有配置图片路径,或者没有此图片,有可能某种原因贴图被释放了

具体方法:

  • 查看图片、量表确保图片和路径都对,查看代码,内存确保贴图没有被释放
4、用到没有实际意义的assert()方法
  • 如果没有什么意义,直接注释掉
5、其他
  • 具体得看崩溃信息了

报错问题

  • 这种几乎都能准确定位,多数为判空安全检查,视情况处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值