-
Creator 版本号: 1.5.1 / 1.6
-
目标平台:Android
-
详细报错信息,包含调用堆栈: ANR Warning,RemoteViews can only be used once ,if not ,it may cause ANR in hosts such as Laucher,SystemUI. keys for search
-
做了什么操作引起的 Bug: 真机测试进入游戏2到3分钟左右闪退, 多数是在触摸点击按钮后闪退, 偶尔会在游戏运行的某个画面闪退. Creator模拟器调试时没有问题.
-
手机型号: 金立
-
操作系统: Android 4.4.2
-
编辑器之前是否有其它报错: 无
-
出现概率: 进入游戏2到3分钟, 极少10分钟左右
这种问题一般是ui线程占用时间太久,android上ui线程如果卡住5秒就会产生这个。我们引擎是跑在gl线程,就算gl线程死循环也不会导致anr。
产生anr的原因有很多,有可能跟你们用的第三方java库有一点关系吧。单凭这一行很难判断的,anr应该也有java堆栈的。能重现的话,有堆栈,要查应该不难。
1赞
过多的使用本地存储会导致这个问题吗?
你是说cc.sys.localStorage么?
我查阅了localStorage的相关代码,发现相关操作并不会post事件到UI线程执行,所以理论上应该不会导致anr。
我取消了所有场景的自动释放资源,问题解决了.
这似乎不科学啊,场景资源的释放都是在GL线程处理的,GL线程的操作不应该导致ANR才是。
adb测试时, logcat会时不时的报本条错误信息, 当闪退时最后一条信息也是这个.
取消所有场景自动释放资源后, logcat也会时不时的报本条错误信息, 但确实没有闪退了.
或许本身不是ANR的原因, 而是我勾选自动释放资源的原因?(有的场景我勾选了, 有的并没有勾选)
有可能,因为你反馈的anr这个日志,估计是其他进程导致的,并不是游戏进程。
如果闪退应该会有崩溃堆栈,闪退应该不会出现anr才是,anr应该会导致UI卡住,并且弹出“程序未响应”的UI对话框。