cocoscreator 看广告崩溃卡死这个问题说大不大,说小不小,因为原因有点多,就我自己做了一个项目而言,遇到崩溃就5、6种情况,今天跟大家分享一下
一、大方向定位问题
看完广告崩溃大方向有两种可能: 1.js/ts代码的问题;2.安卓的问题。这个定位就比较简单,直接打印看看就就能发现问题了
①在调用前打印
如果走到了这里说明调用前的代码是没有问题的
②直接在调用的回调那打断点
如果没有走到这里那就是安卓的问题了,可以看看js跟安卓相互传值有没有问题或者上网查查看这里只提供查找问题的思路安卓我也不懂
③确认是回调成功之后产生的问题
注意,这里有个大坑
场景:看完广告回调之后如果直接退出当前页面有可能会导致程序崩溃!
报错说找不到节点找不到组件,但是那个节点在首次加载可以加载出来,说明就不是代码的问题,这里涉及到执行顺序的问题。
原因 当用户看完广告回到当前界面,就要回调请求php告诉他我看完广告了需要给我返回相应的数据重新找节点刷新界面。
因为监听器是在页面加载的时候就开始侦听的,也就是说一回来监听器就会继续执行回调,php请求的时候可能会因为各种原因延时加载(时间很短不怎么能看出来),在php请求的时候也会有一个回调,要在php回调刷新界面节点的数据,实际上这里产生了时间差,你看完广告马上销毁当前界面,而实际的方法还在执行,所以就会报找不到节点的或者getComponent的错。
解决方案 我直接简单粗暴在php回调对要刷新页面数据的方法做了一个判断,if(!this.node){return;},他继续执行这个方法,但是只要当前界面不存在就不往下执行了

文章主要讨论了CocosCreator游戏中广告观看后导致应用崩溃的常见原因,包括js/ts代码错误、安卓平台问题以及回调执行顺序与页面状态的时间差问题。作者提供了排查步骤,如在调用前打印、设置断点,特别指出在广告回调后立即退出页面可能导致的错误,由于PHP请求延迟和界面销毁的时间差,建议在php回调的方法中添加判断以防止找不到节点的错误。

1878

被折叠的 条评论
为什么被折叠?



