Search Unity

What is "Input dispatching timed out" and how to solve it ?

Discussion in 'Android' started by neufoctobre, Feb 22, 2020.

  1. neufoctobre

    neufoctobre

    Joined:
    Jun 20, 2015
    Posts:
    94
    Hi,

    My app got a lot of ANR with "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" at emplacement : com.unity3d.player.UnityPlayerActivity

    I don't know what does that mean and how to solve it, or at leat how to investigate and understand this error.

    For example here is one of the error my player got :

    Thanks if anyone can help me !

    Code (CSharp):
    1.  
    2. "main" tid=1 Native
    3. "main" prio=5 tid=1 Native
    4.   | group="main" sCount=1 dsCount=0 flags=1 obj=0x725b3f08 self=0xb2727000
    5.   | sysTid=4058 nice=-10 cgrp=default sched=0/0 handle=0xb68e94a4
    6.   | state=S schedstat=( 5460807989 669082550 3945 ) utm=487 stm=58 core=2 HZ=100
    7.   | stack=0xbe083000-0xbe085000 stackSize=8MB
    8.   | held mutexes=
    9.   #00  pc 0000000000048b94  /system/lib/libc.so (__epoll_pwait+20)
    10.   #01  pc 000000000001b439  /system/lib/libc.so (epoll_pwait+60)
    11.   #02  pc 000000000001b469  /system/lib/libc.so (epoll_wait+12)
    12.   #03  pc 000000000001002d  /system/lib/libutils.so (android::Looper::pollInner(int)+120)
    13.   #04  pc 000000000000ff1d  /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+32)
    14.   #05  pc 00000000000b2795  /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, _jobject*, int)+24)
    15.   #06  pc 00000000000baf25  /system/framework/arm/boot-framework.oat (Java_android_os_MessageQueue_nativePollOnce__JI+92)
    16.   at android.os.MessageQueue.nativePollOnce (Native method)
    17.   at android.os.MessageQueue.next (MessageQueue.java:325)
    18.   at android.os.Looper.loop (Looper.java:142)
    19.   at android.app.ActivityThread.main (ActivityThread.java:6647)
    20.   at java.lang.reflect.Method.invoke (Native method)
    21.   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:438)
    22.   at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:811)
     
  2. Tomas1856

    Tomas1856

    Unity Technologies

    Joined:
    Sep 21, 2012
    Posts:
    3,918
    It means, the main thread which stacktrace you're showing here is stuck, and it didn't process the event that was being send to an application, thus Android OS decided to kill your app, and did a thread dump.It should have been more threads here though.

    The question is why your main thread stuck, there can be a lot of reasons, without actually debugging it's hard to say.
     
  3. Mese

    Mese

    Joined:
    Dec 13, 2015
    Posts:
    41
    We are having the same problem in one of our games. We are using Unity 2018.4.7f1

    Any usual suspects for this? Like Admob or certain Monobehaviour methods?

    Thanks!
     
    Alima-Studios likes this.
  4. Tomas1856

    Tomas1856

    Unity Technologies

    Joined:
    Sep 21, 2012
    Posts:
    3,918
    One of the cases would be:

    But there are many other occasions... A repro would be nice in this case.
     
  5. Grinchi

    Grinchi

    Joined:
    Apr 19, 2014
    Posts:
    130
    same her switched to 2019.3.12 form 2019.2.x and got tons of errors. like this :
    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: 23. Wait queue head age: 8335.7ms.)
     
    Alima-Studios and ChameleonAK like this.
  6. ajeets1978

    ajeets1978

    Joined:
    Mar 10, 2019
    Posts:
    25
    I wonder a lot of people seeing the same issue, and basically when using Unity, and Unity people are trying to tell us that we should do this and that and no idea where is what. I don't see such an issue building a similar game in other engines. Should not Unity engine better handle if they know what is happening. It's definitely not about the game, it's about how the engine handling some implementations.

    We have a similar issue with the games built-in Unity engine, and really could not dig much as not getting enough help or where to look at it, compared to any other game we implemented in different engines.
     
  7. M_G_L

    M_G_L

    Joined:
    Apr 4, 2017
    Posts:
    7
    Hi,

    Thanks for sharing this.
    Did you do anything that lowered the number of ANRs, please?

    I also see a lot of ANRs that are coming from Android 8.1 (SDK 27)
    Google Mobile Ads Unity Plugin v5.3.0
    Unity 2017.4.40

    "main" prio=5 tid=1 Native

    Code (CSharp):
    1.   #00  pc 000000000013d7a6  /system/lib/libart.so (art::DexFile::FindClassDef(art::dex::TypeIndex) const+29)
    2.   #00  pc 000000000014fb7b  /system/lib/libart.so (art::DexFileVerifier::CheckInterClassDefItem()+954)
    3.   #00  pc 0000000000150c8b  /system/lib/libart.so (art::DexFileVerifier::CheckInterSectionIterate(unsigned int, unsigned int, art::DexFile::MapItemType)+366)
    4.   #00  pc 00000000001496ed  /system/lib/libart.so (art::DexFileVerifier::Verify()+132)
    5.   #00  pc 0000000000149579  /system/lib/libart.so (art::DexFileVerifier::Verify(art::DexFile const*, unsigned char const*, unsigned int, char const*, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*)+120)
    6.   #00  pc 000000000013ca6d  /system/lib/libart.so (art::DexFile::OpenOneDexFileFromZip(art::ZipArchive const&, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, art::DexFile::ZipOpenErrorCode*)+612)
    7.   #00  pc 000000000013c4d3  /system/lib/libart.so (art::DexFile::OpenAllDexFilesFromZip(art::ZipArchive const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, std::__1::vector<std::__1::unique_ptr<art::DexFile const, std::__1::default_delete<art::DexFile const>>, std::__1::allocator<std::__1::unique_ptr<art::DexFile const, std::__1::default_delete<art::DexFile const>>>>*)+266)
    8.   #00  pc 000000000013c1c7  /system/lib/libart.so (art::DexFile::OpenZip(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, std::__1::vector<std::__1::unique_ptr<art::DexFile const, std::__1::default_delete<art::DexFile const>>, std::__1::allocator<std::__1::unique_ptr<art::DexFile const, std::__1::default_delete<art::DexFile const>>>>*)+270)
    9.   #00  pc 000000000013bf93  /system/lib/libart.so (art::DexFile::Open(char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, std::__1::vector<std::__1::unique_ptr<art::DexFile const, std::__1::default_delete<art::DexFile const>>, std::__1::allocator<std::__1::unique_ptr<art::DexFile const, std::__1::default_delete<art::DexFile const>>>>*)+374)
    10.   #00  pc 000000000031ab89  /system/lib/libart.so (art::OatFileManager::OpenDexFilesFromOat(char const*, _jobject*, _jobjectArray*, art::OatFile const**, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>*)+4580)
    11.   #00  pc 00000000002e9f75  /system/lib/libart.so (art::DexFile_openDexFileNative(_JNIEnv*, _jclass*, _jstring*, _jstring*, int, _jobject*, _jobjectArray*)+96)
    12.   #00  pc 00000000000518bb  /system/framework/arm/boot-core-libart.oat (Java_dalvik_system_DexFile_openDexFileNative__Ljava_lang_String_2Ljava_lang_String_2ILjava_lang_ClassLoader_2_3Ldalvik_system_DexPathList_00024Element_2+194)
    13.   at dalvik.system.DexFile.openDexFileNative (DexFile.java)
    14.   at dalvik.system.DexFile.openDexFile (DexFile.java:353)
    15.   at dalvik.system.DexFile.<init> (DexFile.java:100)
    16.   at dalvik.system.DexFile.<init> (DexFile.java:74)
    17.   at dalvik.system.DexPathList.loadDexFile (DexPathList.java:374)
    18.   at dalvik.system.DexPathList.makeDexElements (DexPathList.java:337)
    19.   at dalvik.system.DexPathList.<init> (DexPathList.java:157)
    20.   at dalvik.system.BaseDexClassLoader.<init> (BaseDexClassLoader.java:65)
    21.   at dalvik.system.PathClassLoader.<init> (PathClassLoader.java:64)
    22.   at com.android.internal.os.ClassLoaderFactory.createClassLoader (ClassLoaderFactory.java:73)
    23.   at com.android.internal.os.ClassLoaderFactory.createClassLoader (ClassLoaderFactory.java:88)
    24.   at android.app.ApplicationLoaders.getClassLoader (ApplicationLoaders.java:69)
    25.   at android.app.ApplicationLoaders.getClassLoader (ApplicationLoaders.java:35)
    26.   at android.app.LoadedApk.createOrUpdateClassLoaderLocked (LoadedApk.java:693)
    27.   at android.app.LoadedApk.getClassLoader (LoadedApk.java:727)
    28.   at android.app.ContextImpl.getClassLoader (ContextImpl.java:300)
    29.   at android.webkit.WebViewFactory.getProviderClass (WebViewFactory.java:394)
    30.   at android.webkit.WebViewFactory.getProvider (WebViewFactory.java:194)
    31.   at android.webkit.WebView.getFactory (WebView.java:2530)
    32.   at android.webkit.WebView.ensureProviderCreated (WebView.java:2525)
    33.   at android.webkit.WebView.setOverScrollMode (WebView.java:2590)
    34.   at android.view.View.<init> (View.java:4574)
    35.   at android.view.View.<init> (View.java:4706)
    36.   at android.view.ViewGroup.<init> (ViewGroup.java:597)
    37.   at android.widget.AbsoluteLayout.<init> (AbsoluteLayout.java:55)
    38.   at android.webkit.WebView.<init> (WebView.java:643)
    39.   at android.webkit.WebView.<init> (WebView.java:588)
    40.   at android.webkit.WebView.<init> (WebView.java:571)
    41.   at android.webkit.WebView.<init> (WebView.java:558)
    42.   at android.webkit.WebView.<init> (WebView.java:548)
    43.   at com.google.android.gms.ads.internal.webview.ac.<init> (ac.java:1)
    44.   at com.google.android.gms.ads.internal.webview.s.a (s.java)
    45.   at com.google.android.gms.ads.internal.util.bi.a (bi.java:13)
    46.   at com.google.android.gms.ads.internal.webview.v.a (v.java:4)
    47.   at com.google.android.gms.ads.internal.js.v.<init> (v.java:4)
    48.   at com.google.android.gms.ads.internal.js.x.run (x.java)
    49.   at android.os.Handler.handleCallback (Handler.java:790)
    50.   at android.os.Handler.dispatchMessage (Handler.java:99)
    51.   at qm.a (qm.java)
    52.   at com.google.android.gms.ads.internal.util.f.a (f.java:1)
    53.   at qm.dispatchMessage (qm.java)
    54.   at android.os.Looper.loop (Looper.java:164)
    55.   at android.app.ActivityThread.main (ActivityThread.java:6494)
    56.   at java.lang.reflect.Method.invoke (Method.java)
    57.   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:438)
    58.   at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807)

    Thanks!
     
  8. mylastggColto

    mylastggColto

    Joined:
    Feb 28, 2017
    Posts:
    28
    Hello there!
    Has anyone found a solution or has an update on the above? I recently started to get an alarming rise in ANR as well (they went above the vital threshold for the first time) over the last 2 to 3 weeks, looks like something related to ads.

    One suspect I have is the following code:

    Code (CSharp):
    1.    public void HandleRewardedAdFailedToLoad(object sender, AdErrorEventArgs args)
    2.     {
    3.         MobileAdsEventExecutor.ExecuteInUpdate(() => {
    4.             Logger.Log("coltoads", "HandleRewardedAdFailedToLoad " + args.Message);
    5.             Invoke(nameof(RequestAd), automaticRetrySecondsInterval);
    6.         });
    7.     }
    8.  
    9.     public void HandleRewardedAdClosed(object sender, EventArgs args)
    10.     {
    11.         MobileAdsEventExecutor.ExecuteInUpdate(() => {
    12.             Logger.Log("coltoads", "HandleRewardedAdClosed ");
    13.             rewardedClosedEvent.Invoke();
    14.             RequestAd();
    15.         });
    16.     }
    17.  
    18.     public void HandleRewardedAdFailedToShow(object sender, AdErrorEventArgs args)
    19.     {
    20.         MobileAdsEventExecutor.ExecuteInUpdate(() => {
    21.             Logger.Log("coltoads", "HandleRewardedAdFailedToShow " + this.name);
    22.             Invoke(nameof(RequestAd), automaticRetrySecondsInterval);
    23.         });
    24.     }
    AdMob callbacks are not thread-safe so I instead execute the code in the MobileAdsEventExecutor.ExecuteInUpdate lambda, does anyone else use this or a similar method that might be causing the issue?

    I'll submit a new build shortly without that code to see if it reduces the ANR rate
     
  9. doarp

    doarp

    Joined:
    Sep 24, 2019
    Posts:
    147
    Did you have any progress with this?
     
    Alima-Studios likes this.
  10. mylastggColto

    mylastggColto

    Joined:
    Feb 28, 2017
    Posts:
    28
    I am uploading the build today, the only other hint I got so far is that in the AdMob Unity plugin, there's a C# 'lock' statement instance here:

    https://github.com/googleads/google...gleMobileAds/Common/MobileAdsEventExecutor.cs

    which should be compatible with what @Tomas1856 suggested above.

    I have now basically removed all the paths to that 'lock' statement by bypassing the MobileAdsEventExecutor GameObject. Fingers crossed.
     
    lucbloom and Alima-Studios like this.
  11. doarp

    doarp

    Joined:
    Sep 24, 2019
    Posts:
    147
    Looking at the code, it only wraps basic C# List code, there is no reason for a dead-lock to occur there.
    Also, we're not using GoogleMobileAds directly, but rather via IronSource mediation, so we don't even have that C# code running, yet still get the ANRs.

    Let us know if you have any progress.
     
    DarkCooker and Alima-Studios like this.
  12. mmonly

    mmonly

    Joined:
    Mar 25, 2015
    Posts:
    8
    please keep updating the progress, I'm facing the same problem with ANR
     
    Alima-Studios likes this.
  13. doarp

    doarp

    Joined:
    Sep 24, 2019
    Posts:
    147
    Below is our ANR rate compared to the category average (puzzle).
    It's clear there was a store-wide rise in ANR rates starting on Dec 10th and stoping on Dec 15th.

     
  14. RGV

    RGV

    Joined:
    Jan 25, 2016
    Posts:
    48
    We're experimenting exactly the same rising @doarp has shown, even the very same days.
     
    Alima-Studios likes this.
  15. Galimski

    Galimski

    Joined:
    Apr 11, 2019
    Posts:
    25
    Hi! We see almost the same increase
    Unity 2018.4.25f1
    Any ideas how to fix?
     

    Attached Files:

    Alima-Studios likes this.
  16. RGV

    RGV

    Joined:
    Jan 25, 2016
    Posts:
    48
    @Galimski Did you update any ads SDK within December 31th update your screenshot shows?
     
    Alima-Studios likes this.
  17. mylastggColto

    mylastggColto

    Joined:
    Feb 28, 2017
    Posts:
    28
    Unfortunately, no update so far has fixed the issue on our end. We are now trying to revert changes we made in the previous builds leading up to the increase. We are using AdMob (mediator), UnityAds, Superawesome, Kidoz and Chartboost as ad networks and we saw the increase after we added Chartboost and upgraded AdMob and UnityAds. Is this someone else using the same networks? Maybe sharing the configuration with each other can help us figure this out?
     
    Alima-Studios likes this.
  18. Galimski

    Galimski

    Joined:
    Apr 11, 2019
    Posts:
    25
    No, we didn't
     
    Alima-Studios likes this.
  19. PycuBep

    PycuBep

    Joined:
    Jul 13, 2017
    Posts:
    2
    We're too. Same ANR rising. Did you find the reasons? ANR.png
     
    Alima-Studios likes this.
  20. RGV

    RGV

    Joined:
    Jan 25, 2016
    Posts:
    48
    We didn't hitherto.
     
    Alima-Studios likes this.
  21. Cheeku001

    Cheeku001

    Joined:
    Jun 22, 2020
    Posts:
    4
    Hi everyone
    I also face same issue but no find any solution if you have any idea about it please tell me a reason why game has been crashed
     
    Alima-Studios likes this.
  22. khanism

    khanism

    Joined:
    Dec 11, 2020
    Posts:
    10
    We are facing the same issue, we are using ads meditation between, admob, unity ads, ironsource, adcolony and inmobi. From many of the stack traces that we analyze we can confirm ads mediation is the culprit (especially iron source). we even publish an update without ads implementation & ads sdks, the ANR's and crashes have significantly reduced since then (actually by whole a lot). Kindly keep this thread updated if you or anyone you know find some sort of solution.
     
    Alima-Studios and leni8ec like this.
  23. xqwww

    xqwww

    Joined:
    Sep 26, 2017
    Posts:
    3
    The same issue we're facing. Anyone can help? Thank you.
     
    Alima-Studios likes this.
  24. eddyjohnson3

    eddyjohnson3

    Joined:
    Jul 27, 2012
    Posts:
    49
    Same issue: recent ANR rate spike on Android 8.1 (SDK 27). Using only Unity Ads, nothing else...
     
    Alima-Studios likes this.
  25. Toastbyte

    Toastbyte

    Joined:
    Sep 1, 2016
    Posts:
    54
    same here
     
    Alima-Studios likes this.
  26. alreadyunity

    alreadyunity

    Joined:
    Apr 21, 2016
    Posts:
    2
    Same problem. 1,8% ANR. Admob + mediation fb/unityads
     
    Alima-Studios likes this.
  27. Franciscotx56

    Franciscotx56

    Joined:
    Feb 8, 2019
    Posts:
    23
    same here
     
    Alima-Studios likes this.
  28. Franciscotx56

    Franciscotx56

    Joined:
    Feb 8, 2019
    Posts:
    23
    I realized that the problem was with ad requests. I was requesting ads at the same time as starting the Google Mobile Ads SDK. you must request ads after the SDK starts and try not to request more than 1 ad per line of code. The Anr rate is decreasing a lot after the last update of my app.
     
  29. sohailciit38

    sohailciit38

    Joined:
    Apr 2, 2019
    Posts:
    14
    upload_2021-2-20_14-58-8.png Hi . I have the same using Admob ads only (latest version 5.4.0). I am also not requesting ads more then one. Still facing this issue.
    Also using the Firebase SDK (Crashlytics,AnalyticsMessaging)
     
    Last edited: Feb 20, 2021
    DarkCooker likes this.
  30. RGV

    RGV

    Joined:
    Jan 25, 2016
    Posts:
    48
    Thanks for exposing your case @Franciscotx56. We don't think ours is the same, though. As @sohailciit38 has said, we're not requesting twice or whatnot — it started w/o any update on our side, indeed.
     
  31. leni8ec

    leni8ec

    Joined:
    May 23, 2013
    Posts:
    24
    Same here problem... We are using Appodeal SDK mediation.

    upload_2021-4-18_5-8-55.png
     
  32. mmonly

    mmonly

    Joined:
    Mar 25, 2015
    Posts:
    8
    I have same result but there is still anr
     
    Alima-Studios likes this.
  33. MianAbdul

    MianAbdul

    Joined:
    Mar 31, 2017
    Posts:
    19
    "main" prio=5 tid=1 Blocked
    at com.safedk.android.analytics.StatsCollector.a (SourceFile:108)
    at com.safedk.android.analytics.brandsafety.BrandSafetyUtils.a (SourceFile:398)
    at com.safedk.android.internal.partials.NetworkBridge.logWebviewLoadURLRequest (SourceFile:174)
    at com.safedk.android.internal.partials.IronSourceNetworkBridge.webviewLoadUrl (IronSourceSourceFile:186)
    at com.ironsource.sdk.controller.WebController.load (WebController.java:2527)
    at com.ironsource.sdk.controller.WebController.loadController (WebController.java:534)
    at com.ironsource.sdk.controller.ControllerManager$1.run (ControllerManager.java:100)
    at android.os.Handler.handleCallback (Handler.java:751)
    at android.os.Handler.dispatchMessage (Handler.java:95)
    at android.os.Looper.loop (Looper.java:154)
    at android.app.ActivityThread.main (ActivityThread.java:6165)
    at java.lang.reflect.Method.invoke! (Native method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:888)
    at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:778)
    Type
    "AppLovinSdk:com.applovin.communicator" daemon prio=10 tid=49 Runnable
    at java.util.concurrent.ConcurrentHashMap.keySet (ConcurrentHashMap.java)
    at com.safedk.android.utils.PersistentConcurrentHashMap.put (SourceFile:71)
    at com.safedk.android.analytics.StatsCollector.c (SourceFile:312)
    at com.safedk.android.analytics.StatsCollector.<init> (SourceFile:153)
    at com.safedk.android.analytics.StatsCollector.a (SourceFile:114)
    at com.safedk.android.SafeDK.L (SourceFile:361)
    at com.safedk.android.SafeDK.a (SourceFile:323)
    at com.safedk.android.SafeDK.a (SourceFile:372)
    at com.safedk.android.internal.DeviceData.onMessageReceived (SourceFile:165)
    at com.applovin.impl.communicator.b.onReceive (unavailable)
    at com.applovin.impl.sdk.AppLovinBroadcastManager.sendBroadcastSync (unavailable)
    at com.applovin.impl.communicator.MessagingServiceImpl$1.run (unavailable)
    at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:428)
    at java.util.concurrent.FutureTask.run (FutureTask.java:237)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:272)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1133)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
    at java.lang.Thread.run (Thread.java:761)
    Type
    "Jit thread pool worker thread 0" prio=5 tid=2 Native (still starting up)
    #00 pc 00000000000174e4 /system/lib/libc.so (syscall+28)
    #00 pc 00000000000b6fc9 /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+92)
    #00 pc 0000000000345909 /system/lib/libart.so (art::ThreadPool::GetTask(art::Thread*)+160)
    #00 pc 0000000000345133 /system/lib/libart.so (art::ThreadPoolWorker::Run()+62)
    #00 pc 0000000000344c61 /system/lib/libart.so (art::ThreadPoolWorker::Callback(void*)+64)
    #00 pc 0000000000046ee3 /system/lib/libc.so (__pthread_start(void*)+22)
    #00 pc 0000000000019afd /system/lib/libc.so (__start_thread+6)
    Type
    "ReferenceQueueDaemon" daemon prio=5 tid=4 Waiting
    at java.lang.Object.wait! (Native method)
    at java.lang.Daemons$ReferenceQueueDaemon.run (Daemons.java:150)
    at java.lang.Thread.run (Thread.java:761)
    Type
    "FinalizerDaemon" daemon prio=5 tid=5 Waiting
    at java.lang.Object.wait! (Native method)
    at java.lang.Object.wait (Object.java:407)
    at java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:188)
    at java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:209)
    at java.lang.Daemons$FinalizerDaemon.run (Daemons.java:204)
    at java.lang.Thread.run (Thread.java:761)
    Type
    "FinalizerWatchdogDaemon" daemon prio=5 tid=6 Sleeping
    at java.lang.Thread.sleep! (Native method)
    at java.lang.Thread.sleep (Thread.java:371)
    at java.lang.Thread.sleep (Thread.java:313)
    at java.lang.Daemons$FinalizerWatchdogDaemon.sleepFor (Daemons.java:314)
    at java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization (Daemons.java:336)
    at java.lang.Daemons$FinalizerWatchdogDaemon.run (Daemons.java:253)
    at java.lang.Thread.run (Thread.java:761)
    Type
    "Binder:27748_1" prio=5 tid=8 Native
    #00 pc 0000000000048498 /system/lib/libc.so (__ioctl+8)
    #00 pc 000000000001aaff /system/lib/libc.so (ioctl+38)
    #00 pc 000000000003cd65 /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+168)
    #00 pc 000000000003ce5d /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+8)
    #00 pc 000000000003d3e3 /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+46)
    #00 pc 000000000004f819 /system/lib/libbinder.so (???)
    #00 pc 000000000000e435 /system/lib/libutils.so (android::Thread::_threadLoop(void*)+140)
    #00 pc 0000000000066ab5 /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+80)
    #00 pc 0000000000046ee3 /system/lib/libc.so (__pthread_start(void*)+22)
    #00 pc 0000000000019afd /system/lib/libc.so (__start_thread+6)
    Type
    "Binder:27748_2" prio=5 tid=9 Native
    #00 pc 0000000000048498 /system/lib/libc.so (__ioctl+8)
    #00 pc 000000000001aaff /system/lib/libc.so (ioctl+38)
    #00 pc 000000000003cd65 /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+168)
    #00 pc 000000000003ce5d /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+8)
    #00 pc 000000000003d3e3 /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+46)
    #00 pc 000000000004f819 /system/lib/libbinder.so (???)
    #00 pc 000000000000e435 /system/lib/libutils.so (android::Thread::_threadLoop(void*)+140)
    #00 pc 0000000000066ab5 /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+80)
    #00 pc 0000000000046ee3 /system/lib/libc.so (__pthread_start(void*)+22)
    #00 pc 0000000000019afd /system/lib/libc.so (__start_thread+6)
    Type
    "Profile Saver" daemon prio=10 tid=10 Native
    #00 pc 00000000000174e4 /system/lib/libc.so (syscall+28)
    #00 pc 00000000000b6fc9 /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+92)
    #00 pc 000000000025b77d /system/lib/libart.so (art::profileSaver::Run()+296)
    #00 pc 000000000025cab9 /system/lib/libart.so (art::profileSaver::RunProfileSaverThread(void*)+52)
    #00 pc 0000000000046ee3 /system/lib/libc.so (__pthread_start(void*)+22)
    #00 pc 0000000000019afd /system/lib/libc.so (__start_thread+6)
    Type
    "Binder:27748_3" prio=5 tid=11 Native
    #00 pc 0000000000048498 /system/lib/libc.so (__ioctl+8)
    #00 pc 000000000001aaff /system/lib/libc.so (ioctl+38)
    #00 pc 000000000003cd65 /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+168)
    #00 pc 000000000003ce5d /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+8)
    #00 pc 000000000003d3e3 /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+46)
    #00 pc 000000000004f819 /system/lib/libbinder.so (???)
    #00 pc 000000000000e435 /system/lib/libutils.so (android::Thread::_threadLoop(void*)+140)
    #00 pc 0000000000066ab5 /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+80)
    #00 pc 0000000000046ee3 /system/lib/libc.so (__pthread_start(void*)+22)
    #00 pc 0000000000019afd /system/lib/libc.so (__start_thread+6)
    Type
    "pool-2-thread-1" prio=5 tid=12 Waiting
    at java.lang.Object.wait! (Native method)
    at java.lang.Thread.parkFor$ (Thread.java:2127)
    at sun.misc.Unsafe.park (Unsafe.java:325)
    at java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
    at java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:413)
    at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
    at java.lang.Thread.run (Thread.java:761)
    Type
    "ScionFrontendApi" prio=5 tid=15 TimedWaiting
    at java.lang.Object.wait! (Native method)
    at java.lang.Thread.parkFor$ (Thread.java:2127)
    at sun.misc.Unsafe.park (Unsafe.java:325)
    at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:201)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2077)
    at java.util.concurrent.LinkedBlockingQueue.poll (LinkedBlockingQueue.java:438)
    at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1057)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
    at java.lang.Thread.run (Thread.java:761)
    Type
    "pool-7-thread-1" prio=5 tid=16 Waiting
    at java.lang.Object.wait! (Native method)
    at java.lang.Thread.parkFor$ (Thread.java:2127)
    at sun.misc.Unsafe.park (Unsafe.java:325)
    at java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
    at java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:413)
    at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
    at java.lang.Thread.run (Thread.java:761)
    Type
    "pool-7-thread-2" prio=5 tid=17 Waiting
    at java.lang.Object.wait! (Native method)
    at java.lang.Thread.parkFor$ (Thread.java:2127)
    at sun.misc.Unsafe.park (Unsafe.java:325)
    at java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
    at java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:413)
    at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
    at java.lang.Thread.run (Thread.java:761)
    Type
    "pool-10-thread-1" prio=5 tid=22 TimedWaiting
    at java.lang.Object.wait! (Native method)
    at java.lang.Thread.parkFor$ (Thread.java:2127)
    at sun.misc.Unsafe.park (Unsafe.java:325)
    at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:201)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2077)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1103)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1084)
    at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
    at java.lang.Thread.run (Thread.java:761)
    Type
    "pool-11-thread-1" prio=5 tid=23 Waiting
    at java.lang.Object.wait! (Native method)
    at java.lang.Thread.parkFor$ (Thread.java:2127)
    at sun.misc.Unsafe.park (Unsafe.java:325)
    at java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1091)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1084)
    at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
    at java.lang.Thread.run (Thread.java:761)
    Type
    "Thread-8" prio=5 tid=24 Native
    #00 pc 0000000000048358 /system/lib/libc.so (__epoll_pwait+20)
    #00 pc 0000000000019ead /system/lib/libc.so (epoll_pwait+60)
    #00 pc 0000000000019edd /system/lib/libc.so (epoll_wait+12)
    #00 pc 0000000000011def /system/lib/libutils.so (android::Looper::pollInner(int)+118)
    #00 pc 0000000000011ceb /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+26)
    #00 pc 0000000000092c79 /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, _jobject*, int)+22)
    #00 pc 00000000006427d5 /system/framework/arm/boot-framework.oat (Java_android_os_MessageQueue_nativePollOnce__JI+96)
    at android.os.MessageQueue.nativePollOnce (Native method)
    at android.os.MessageQueue.next (MessageQueue.java:323)
    at android.os.Looper.loop (Looper.java:136)
    at com.google.androidgamesdk.SwappyDisplayManager$a.run (unavailable)
    Type
    "pool-8-thread-1" prio=5 tid=25 Waiting
    at java.lang.Object.wait! (Native method)
    at java.lang.Thread.parkFor$ (Thread.java:2127)
    at sun.misc.Unsafe.park (Unsafe.java:325)
    at java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1091)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1084)
    at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
    at java.lang.Thread.run (Thread.java:761)
    Type
    "UnityMain" prio=5 tid=26 Native
    #00 pc 00000000000174e4 /system/lib/libc.so (syscall+28)
    #00 pc 00000000000b6fc9 /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+92)
    #00 pc 0000000000264761 /system/lib/libart.so (art::JNI::pushLocalFrame(_JNIEnv*, int)+204)
    #00 pc 00000000007c4db1 /data/app/com.playspare.watersort3d-2/lib/arm/libunity.so (???)
    at com.unity3d.player.UnityPlayer.nativeRender (Native method)
    at com.unity3d.player.UnityPlayer.access$300 (unavailable)
    at com.unity3d.player.UnityPlayer$e$1.handleMessage (unavailable)
    at android.os.Handler.dispatchMessage (Handler.java:98)
    at android.os.Looper.loop (Looper.java:154)
    at com.unity3d.player.UnityPlayer$e.run (unavailable)
    Type
    "FMODAudioDevice" prio=10 tid=28 Native
    #00 pc 00000000000174e4 /system/lib/libc.so (syscall+28)
    #00 pc 00000000000b6fc9 /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+92)
    #00 pc 0000000000285319 /system/lib/libart.so (void art::JNI::ReleasePrimitiveArray<_jbyteArray*, signed char, art::mirror::primitiveArray<signed char> >(_JNIEnv*, _jbyteArray*, signed char*, int)+220)
    #00 pc 00000000000b187b /system/lib/libandroid_runtime.so (???)
    #00 pc 0000000000447ab7 /system/framework/arm/boot-framework.oat (Java_android_media_AudioTrack_native_1write_1byte___3BIIIZ+130)
    at android.media.AudioTrack.native_write_byte (Native method)
    at android.media.AudioTrack.write (AudioTrack.java:1920)
    at android.media.AudioTrack.write (AudioTrack.java:1857)
    at org.fmod.FMODAudioDevice.run (unavailable)
    at java.lang.Thread.run (Thread.java:761)
    Type
    "AudioTrack" prio=10 tid=29 Native
    #00 pc 00000000000174e8 /system/lib/libc.so (syscall+32)
    #00 pc 0000000000046a6d /system/lib/libc.so (__pthread_cond_timedwait(pthread_cond_internal_t*, pthread_mutex_t*, bool, timespec const*)+102)
    #00 pc 0000000000046ae7 /system/lib/libc.so (pthread_cond_timedwait_relative_np+46)
    #00 pc 000000000006ef35 /system/lib/libmedia.so (android::AudioTrack::AudioTrackThread::threadLoop()+284)
    #00 pc 000000000000e4b1 /system/lib/libutils.so (android::Thread::_threadLoop(void*)+264)
    #00 pc 0000000000066ab5 /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+80)
    #00 pc 0000000000046ee3 /system/lib/libc.so (__pthread_start(void*)+22)
    #00 pc 0000000000019afd /system/lib/libc.so (__start_thread+6)
    Type
    "Thread-9" prio=6 tid=30 Native
    #00 pc 00000000000174e8 /system/lib/libc.so (syscall+32)
    #00 pc 000000000068fb89 /data/app/com.playspare.watersort3d-2/lib/arm/libunity.so (???)
    #00 pc 00000000000c9217 /data/app/com.playspare.watersort3d-2/lib/arm/libunity.so (???)
    #00 pc 000000000020d4f3 /data/app/com.playspare.watersort3d-2/lib/arm/libunity.so (???)
    #00 pc 00000000007723fb /data/app/com.playspare.watersort3d-2/lib/arm/libunity.so (???)
    #00 pc 0000000000778783 /data/app/com.playspare.watersort3d-2/lib/arm/libunity.so (???)
    #00 pc 000000000077219b /data/app/com.playspare.watersort3d-2/lib/arm/libunity.so (???)
    #00 pc 000000000020ca27 /data/app/com.playspare.watersort3d-2/lib/arm/libunity.so (???)
    #00 pc 0000000000046ee3 /system/lib/libc.so (__pthread_start(void*)+22)
    #00 pc 0000000000019afd /system/lib/libc.so (__start_thread+6)
    Type
    "OkHttp ConnectionPool" daemon prio=5 tid=31 TimedWaiting
    at java.lang.Object.wait! (Native method)
    at com.android.okhttp.ConnectionPool.performCleanup (ConnectionPool.java:305)
    at com.android.okhttp.ConnectionPool.runCleanupUntilPoolIsEmpty (ConnectionPool.java:242)
    at com.android.okhttp.ConnectionPool.-wrap0 (ConnectionPool.java)
    at com.android.okhttp.ConnectionPool$1.run (ConnectionPool.java:97)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1133)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
    at java.lang.Thread.run (Thread.java:761)
    Type
    "Bugsnag Thread #1" prio=5 tid=32 Waiting
    at java.lang.Object.wait! (Native method)
    at java.lang.Thread.parkFor$ (Thread.java:2127)
    at sun.misc.Unsafe.park (Unsafe.java:325)
    at java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
    at java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:413)
    at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
    at java.lang.Thread.run (Thread.java:761)
    Type
    "ConnectivityManager" prio=5 tid=33 Native
    #00 pc 0000000000048358 /system/lib/libc.so (__epoll_pwait+20)
    #00 pc 0000000000019ead /system/lib/libc.so (epoll_pwait+60)
    #00 pc 0000000000019edd /system/lib/libc.so (epoll_wait+12)
    #00 pc 0000000000011def /system/lib/libutils.so (android::Looper::pollInner(int)+118)
    #00 pc 0000000000011ceb /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+26)
    #00 pc 0000000000092c79 /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, _jobject*, int)+22)
    #00 pc 00000000006427d5 /system/framework/arm/boot-framework.oat (Java_android_os_MessageQueue_nativePollOnce__JI+96)
    at android.os.MessageQueue.nativePollOnce (Native method)
    at android.os.MessageQueue.next (MessageQueue.java:323)
    at android.os.Looper.loop (Looper.java:136)
    at android.os.HandlerThread.run (HandlerThread.java:61)
    Type
    "Bugsnag Thread #2" prio=5 tid=34 Waiting
    at java.lang.Object.wait! (Native method)
    at java.lang.Thread.parkFor$ (Thread.java:2127)
    at sun.misc.Unsafe.park (Unsafe.java:325)
    at java.util.concurrent.locks.LockSupport.park (LockSupport.java:161)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2035)
    at java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:413)
    at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1058)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1118)
    Type
    "Signal Catcher" daemon prio=5 tid=3 Runnable
    #00 pc 0000000000351ba1 /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, BacktraceMap*, char const*, art::ArtMethod*, void*)+128)
    #00 pc 00000000003323a5 /system/lib/libart.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bool, BacktraceMap*) const+308)
    #00 pc 00000000003443c1 /system/lib/libart.so (art::DumpCheckpoint::Run(art::Thread*)+620)
    #00 pc 000000000033e3cb /system/lib/libart.so (art::ThreadList::RunCheckpoint(art::Closure*)+330)
    #00 pc 000000000033e0c7 /system/lib/libart.so (art::ThreadList::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, bool)+586)
    #00 pc 000000000033de1f /system/lib/libart.so (art::ThreadList::DumpForSigQuit(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)+574)
    #00 pc 00000000003232b5 /system/lib/libart.so (art::Runtime::DumpForSigQuit(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)+124)
    #00 pc 0000000000327d3b /system/lib/libart.so (art::SignalCatcher::HandleSigQuit()+1394)
    #00 pc 0000000000326ead /system/lib/libart.so (art::SignalCatcher::Run(void*)+352)
    #00 pc 0000000000046ee3 /system/lib/libc.so (__pthread_start(void*)+22)
    #00 pc 0000000000019afd /system/lib/libc.so (__start_thread+6)
    Type
    "HeapTaskDaemon" daemon prio=5 tid=7 WaitingForCheckPointsToRun
    #00 pc 00000000000174e4 /system/lib/libc.so (syscall+28)
    #00 pc 00000000000b6fc9 /system/lib/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+92)
    #00 pc 00000000000b1993 /system/lib/libart.so (art::Barrier::Increment(art::Thread*, int)+48)
    #00 pc 0000000000175f5d /system/lib/libart.so (art::gc::collector::MarkSweep::MarkRootsCheckpoint(art::Thread*, bool)+524)
    #00 pc 000000000017654d /system/lib/libart.so (art::gc::collector::MarkSweep::MarkRoots(art::Thread*)+140)
    #00 pc 0000000000175723 /system/lib/libart.so (art::gc::collector::MarkSweep::MarkingPhase()+122)
    #00 pc 00000000001755c5 /system/lib/libart.so (art::gc::collector::MarkSweep::RunPhases()+144)
    #00 pc 00000000001703a5 /system/lib/libart.so (art::gc::collector::GarbageCollector::Run(art::gc::GcCause, bool)+248)
    #00 pc 00000000001937f1 /system/lib/libart.so (art::gc::Heap::CollectGarbageInternal(art::gc::collector::GcType, art::gc::GcCause, bool)+2368)
    #00 pc 00000000001990cd /system/lib/libart.so (art::gc::Heap::ConcurrentGC(art::Thread*, bool)+68)
    #00 pc 000000000019dc27 /system/lib/libart.so (art::gc::Heap::ConcurrentGCTask::Run(art::Thread*)+18)
    #00 pc 00000000001b584f /system/lib/libart.so (art::gc::TaskProcessor::RunAllTasks(art::Thread*)+30)
    #00 pc 0000000000161577 /system/framework/arm/boot-core-libart.oat (Java_dalvik_system_VMRuntime_runHeapTasks__+74)
    at dalvik.system.VMRuntime.runHeapTasks (Native method)
    at java.lang.Daemons$HeapTaskDaemon.run (Daemons.java:433)
    at java.lang.Thread.run (Thread.java:761)
     
    Alima-Studios likes this.
  34. LARP

    LARP

    Joined:
    May 9, 2014
    Posts:
    1
    upload_2021-5-31_8-46-2.png

    Unity ads :/
     
  35. sogonen

    sogonen

    Joined:
    Mar 3, 2017
    Posts:
    6
    We are having the same issue on new version of our game in Unity 2020.3.11f LTS.

    On this version we have included Google Native Review Api which relies on Google Play Core libraries and in PlayCoreEventHandler.cs there are 2 "lock" function inside which we can not bypass as we are using the Review Api.

    How can we fix this problem so our ANR won't peak ?

    PlaycoreEvenHandler.cs (Attached as well)
    -------------------------------------
    private void HandleEventInternal(Action action)
    {
    lock (_sharedEventQueue)
    {
    _sharedEventQueue.Enqueue(action);
    }
    }

    private void Update()
    {
    lock (_sharedEventQueue)
    {
    while (_sharedEventQueue.Count > 0)
    {
    var action = _sharedEventQueue.Dequeue();
    _localEventQueue.Enqueue(action);
    }
    }

    // Invoke events outside of the lock because they may take an indeterminate amount of time.
    while (_localEventQueue.Count > 0)
    {
    _localEventQueue.Dequeue().Invoke();
    }
    }
    ---------------------------------------------------------------
     

    Attached Files:

    Alima-Studios likes this.
  36. hosseinpanahloo

    hosseinpanahloo

    Joined:
    Jun 28, 2018
    Posts:
    11
    Has anyone found a solution for this?
     
  37. sohailciit38

    sohailciit38

    Joined:
    Apr 2, 2019
    Posts:
    14
  38. doarp

    doarp

    Joined:
    Sep 24, 2019
    Posts:
    147
    Most likely related to mediation, ad networks, and android resolve/
    Make sure you are using the minimal set of SDKs, with all the proper dependencies for ad networks, and that you are performing and android resolve on the final build architecture (64 bit e.g.). This helped us. Especially, when using IronSource mediation, make sure you have zero manual dependencies to ad networks and that you IronSource add the dependencies and do the android resolve. Also be sure you are using the latest versions of everything.
     
    bekici, Alima-Studios and RGV like this.
  39. sam_paladin

    sam_paladin

    Joined:
    Oct 5, 2021
    Posts:
    12
    Did you find any solution for this? We are having the same and it's affecting ANRs. We are using the latest on IS or one of the latest on ironSource.
     
    Alima-Studios likes this.
  40. dimmduh1

    dimmduh1

    Joined:
    Feb 5, 2021
    Posts:
    24
    I have same problem for 2+ year, since google play started showing ANR
     
    PaXLiCh and Alima-Studios like this.
  41. lucbloom

    lucbloom

    Joined:
    Mar 27, 2020
    Posts:
    42
    I've made a sneaky solution that might help. I'll be testing it on our live build over the coming weeks, and will report its effectiveness here. In the meantime, I welcome any suggestions to the idea and the implementation:
    https://github.com/lucbloom/unity_anr_supervisor

    ANR Supervisor
    A system that detects ANRs in the main thread and closes the game before the ANR is reported to Google. It reports the ANR to our own backend, which stores it in a Database for review.

    This alleviates the ANR rate reported by Google Analytics. Most ANRs are caused by Ad SDKs (e.g. Google's own AdMob), so there is an option to only enable it during ad views.

    Another solution could be to make a list of problematic devices and not show ads on those devices, but that's a project for another time.​
     
  42. Alima-Studios

    Alima-Studios

    Joined:
    Nov 12, 2014
    Posts:
    78
    But what are the side effects? maybe more people will get angry ... , will it change an app freeze by closing it... ? perhaps the people will vote with less starts ? is this a plausible scenery?
     
  43. nemanjab

    nemanjab

    Joined:
    Jan 10, 2019
    Posts:
    12
    What are the results of this solution?
     
  44. lucbloom

    lucbloom

    Joined:
    Mar 27, 2020
    Posts:
    42
    It works, technically. The app is closed before the ANR is detected by Google. We have not seen any sign of false-positives. If it hangs for > 2 sec, it's in the AdMob code. Come to think of it, that is what I should have added. Only activate when the stack trace of the blocked thread includes "gms", AdMob code :)

    @Alima-Studios we have the choice between
    - 5 second hang + close by Google "This app is not responding" dialog
    - auto close
    Seeing this is only happening to a small % of users, I wanted to experiment with the 2nd option.

    BUT! Seems like Google finally stepped up and we have a very promising update, guys!

    https://developers.google.com/admob/android/optimize-initialization
    https://developers.google.com/admob/android/rel-notes
    I'm going to adopt this version with great joy, in favor of my own experiment.
     
    Endahs, PokerDawg and Alima-Studios like this.
  45. lucbloom

    lucbloom

    Joined:
    Mar 27, 2020
    Posts:
    42
  46. D_Cergy

    D_Cergy

    Joined:
    Feb 18, 2015
    Posts:
    35
    Any update after implementing this fix?
    I've updated to Admob 21.0.0, and using UnityAds mediation, but the ANR has not decreased yet.

    I just notices that it requires turning ON the flag for optimization from Manifest.

    Important: Both the OPTIMIZE_INITIALIZATION and OPTIMIZE_AD_LOADING flags are set to false by default.

    I'm planning to try removing the mediation if this fix is not resolving the ANR issue. This issue severely damaging to the discoverability in the Playstore.
     
    triczonedev and khanism like this.
  47. DarkCooker

    DarkCooker

    Joined:
    Jan 7, 2015
    Posts:
    119
    How is it going? thanks
     
  48. D_Cergy

    D_Cergy

    Joined:
    Feb 18, 2015
    Posts:
    35
    I just released a phased roll-out for few days, so the data is still limited. I can't confirm yet if the occurrences is lower after implementing this "optimized" SDK, but unfortunately this issue is still occurring.

    What I did is :
    Using Admob 21.0.0 and turning on the Optimization flag.
    Still using UnityAds mediation.
    Spreading out the Initialization, RewardedAd request and Interstitial for few seconds as suggested by Franciscotx56.
     
    DarkCooker likes this.
  49. domonyiv

    domonyiv

    Joined:
    Oct 1, 2016
    Posts:
    76
    FYI: I am not using Admob SDK or any other 3rd party SDK at all and still get a lot of from the same ANR when I enable Unity ADS.
     
  50. pradotech

    pradotech

    Joined:
    Oct 17, 2019
    Posts:
    35
    I'm doing exactly the same thing. I also downgraded my project to Unity 2021.3.2 which most people say it's safer than newer ones. But I'm still getting the same issue. I noticed that most of problematic devices are Motorola. I own three Motorola devices and for some luck (or not) I could reproduce the issue myself in my Moto E5. Unfortunately it happens so randomly that I couldn't reproduce ever again.

    I do not discard the possibility of this issue being caused by Unity Ads. I updated both AdMob and UnityAds before started to get this trouble. I was using Unity Ads 3.7.5 (which is the recommended one) but I had to update to 4.0+ because Play Console now requires some policies that are available only on Unity Ads 4.0+. So it looks like a dead end to me. I'm constantly keeping track of threads like this one to see if anyone manages to find the real cause or any solution.