Creator开发的产品ANR特别高怎么解决?

一直在用cocos creator开发产品,版本2.4.3,产品上线跑了半年,一直发现ANR很高,集中在Input dispatching timed out,一直无法解决。求助。

我们也碰到了同样的问题,creator版本2.4.4, 出现大量Input dispatching timed out,
image
1.报错日志(出现次数最多)
Input dispatching timed out (ActivityRecord{16bd081 u0 online.live.game/org.cocos2dx.javascript.AppActivity t1492} does not have a focused window)
堆栈信息
#00 pc 000000000005e3e8 /apex/com.android.runtime/lib/bionic/libc.so (syscall+28)
#00 pc 0000000000131bb3 /apex/com.android.art/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+82)
#00 pc 00000000002ae0ef /apex/com.android.art/lib/libart.so (art::JNI::CallObjectMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+422)
#00 pc 000000000000365d /apex/com.android.art/lib/libnativehelper.so (_JNIEnv::CallObjectMethod(_jobject*, _jmethodID*, …)+28)
#00 pc 00000000000f1197 /system/lib/libandroid_runtime.so ((anonymous namespace)::Receiver::handleEvent(int, int, void*)+74)
#00 pc 0000000000011ec1 /system/lib/libutils.so (android::Looper::pollInner(int)+696)
#00 pc 0000000000011bb3 /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+62)
#00 pc 00000000000bdf8f /system/lib/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long long, int)+24)
at android.os.MessageQueue.nativePollOnce (Native method)
at android.os.MessageQueue.next (MessageQueue.java:335)
at android.os.Looper.loop (Looper.java:206)
at android.app.ActivityThread.main (ActivityThread.java:8587)
at java.lang.reflect.Method.invoke (Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1130)
2.报错日志(无堆栈日志)
Input dispatching timed out (Waiting to send non-key event because the touched window has not finished processing certain input events that were delivered to it over 500.0ms ago. Wait queue length: 9. Wait queue head age: 11050.2ms.)

+1 2.4.4 确实有这个问题 不好定位

有重现方式吗?

我这边遇到的是加载远程或者本地比较大的video(1-2m)左右,会再刚开始加载的时候容易ANR,不知道你这个是不是有用过videoplayer

安卓 2.4.5 播放视频时切后前台,同时调用currentTime或duration,几乎必现。

2.3.3版本也是,这个ANR特别高

我发现我的问题是聚合SDK带来的ANR,不是引擎的

我遇到一模一样的问题,确定是Admob sdk有bug导致ANR非常高,这个问题出现有一年左右了google都没有修复,我通过过滤部分低配手机降低广告展示频率才解决这个问题,但是这种解决方法会导致我的收入下降非常蛋疼。

很蛋疼,可以换个admob版本试试,只能这样

google的开发人员都说没有解决这个问题让开发者耐心等待。。。

兄弟,你们ANR里面会有一些堆栈显示不出来的问题吗?我们这个无堆栈的占了一半左右,剩下的广告占了一大半,其余都是些偶现问题,可以暂时忽略掉。请问这个无堆栈的有头绪么,求教。 :pray:

无堆栈的我也有,而且前一阵特别多,每天的1.5%其中有1.3%都是他,后来就把广告聚合平台其中某个广告干掉了就没事了,你也从这方面看看吧。

1赞

以前广告少的时候,我们手动点过广告确实很少,现在数量太多就没去一个个点了,:pray:多谢多谢。

一大堆都是老机器的

我们用户群里大部分都是非欧美国家,设备普遍都比较差,和国内没法比。anr的大部分也都是2G内存以下手机报出的,我们自己只能再去优化低端机内存,广告问题暂时无解,谷歌官方也没一点进展 :pensive:

内存优化不一定有效果吧,出问题的是广告SDK的话,那还是得去处理广告SDK的问题,可以更新下最新版sdk或者降低sdk版本号试试。

我们很少在4G内存以上的手机上看到广告的报错,有些anr猜测可能广告加载时需要的内存峰值比较大。我sdk已经更新到了最新的了,自从上了20.0.0就一直都有问题

1赞

是admob哪个聚合平台的问题?

去掉广告后还会吗?