欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Unity3D-iOS崩溃之“AGXGLDriver: glrKillClient + 464”

程序员文章站 2022-04-09 10:51:15
...

我的项目上线后,出现好多这个崩溃,还主要是iOS10以上很容易出现:

AGXGLDriver: glrKillClient + 464

Unity3D-iOS崩溃之“AGXGLDriver: glrKillClient + 464”

在网上查了半天,说是一个webview在后台刷新的引起的,但是我并没有使用webview,经过排查之后,发现其实就是展示谷歌广告的时候会用到webview。

于是在程序中处理了下广告,就是当游戏挂起时,把广告都不显示或者销毁,总之就是不让他们刷新就可以了。

void OnApplicationPause(bool _pauseStatus)
	{
		if (_pauseStatus){
			GoogleManager.SetAdHide(GoogleManager.Kind.BANNER);
			GoogleManager.ins.RemoveInterstitial();
		}else{
			GoogleManager.SetAdShow(GoogleManager.Kind.BANNER);
		}
	}
如果有激励广告,也记得添加上哦。

目前这么改动之后,新版本还没出现这个崩溃了。


2018.2.26 补充:

在后面看到的报告,还是有这个问题出现,但是几率变小了,出现的时机是当广告即将显示的时候,用户按Home退出到后台时,就会出现这个崩溃,这种情况一般会出现在视频加载比较慢的情况才会有,当然,如果按照上面的方式,也能减少,但是杜绝不了。

今天是看到google广告的SDK有了更新,上面增加了一个方法,专门用来解决本问题的。

**************
Version 3.11.0
**************

Plugin:
- Updated Android ad events to be invoked on the main thread.
- Added `MobileAds.SetiOSAppPauseOnBackground()` method to pause iOS apps when
displaying full screen ads.
- Fixed issue were banners repositioned incorrectly following an orienation
change.

所以,现在去下载最新的SDK就可以更好地解决这个问题!目前还没出现崩溃。

使用就是在 OnApplicationPause 函数中添加上面的方法即可!