Some Android phones crash irregularly while running games

# UnityMain(73545)
libc.0x7066c(Native Method)
libaaudio.0x1d10c(Native Method)
libaaudio.0x2151c(Native Method)
libaaudio.0x25bf0(Native Method)
libaudioclient.0x7291c(Native Method)
libaudioclient.0x5ea20(Native Method)
libaudioclient.0x90f48(Native Method)
libbinder.0x587a8(Native Method)
libbinder.0x65754(Native Method)
libbinder.0x651dc(Native Method)
libbinder.0x65a78(Native Method)
libbinder.0x8bbb0(Native Method)
libutils.0x136d4(Native Method)
libandroid_runtime.0x104fec(Native Method)
libc.0xcf7c0(Native Method)
libc.0x721a8(Native Method)

# main(1)
android.os.MessageQueue.nativePollOnce(Native Method)
android.os.MessageQueue.next(MessageQueue.java:363)
android.os.Looper.loop(Looper.java:176)
android.app.ActivityThread.main(ActivityThread.java:8668)
java.lang.reflect.Method.invoke(Native Method)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109)

# ReferenceQueueDaemon(73526)
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:442)
java.lang.Object.wait(Object.java:568)
java.lang.Daemons$ReferenceQueueDaemon.runInternal(Daemons.java:215)
java.lang.Daemons$Daemon.run(Daemons.java:137)
java.lang.Thread.run(Thread.java:929)

# FinalizerDaemon(73527)
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:442)
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:190)
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:211)
java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:271)
java.lang.Daemons$Daemon.run(Daemons.java:137)
java.lang.Thread.run(Thread.java:929)

# FinalizerWatchdogDaemon(73528)
java.lang.Object.wait(Native Method)
java.lang.Ob ject.wait(Object.java:442)
java.lang.Object.wait(Object.java:568)
java.lang.Daemons$FinalizerWatchdogDaemon.sleepUntilNeeded(Daemons.java:339)
java.lang.Daemons$FinalizerWatchdogDaemon.runInternal(Daemons.java:319)
java.lang.Daemons$Daemon.run(Daemons.java:137)
java.lang.Thread.run(Thread.java:929)

# recorder(73537)
android.os.MessageQueue.nativePollOnce(Native Method)
android.os.MessageQueue.next(MessageQueue.java:363)
android.os.Looper.loop(Looper.java:176)
android.os.HandlerThread.run(HandlerThread.java:67)

# send HandlerThread(73541)
android.os.MessageQueue.nativePollOnce(Native Method)
android.os.MessageQueue.next(MessageQueue.java:363)
android.os.Looper.loop(Looper.java:176)
android.os.HandlerThread.run(HandlerThread.java:67)

# appwaid(73544)
android.os.MessageQueue.nativePollOnce(Native Method)
android.os.MessageQueue.next(MessageQueue.java:363)
android.os.Looper.loop(Looper.java:176)
android.os.HandlerThread.run(HandlerThread.java:67)

# TuringFdCore_76_105548_ad(73546)
android.os.MessageQueue.nativePollOnce(Native Method)
android.os.MessageQueue.next(MessageQueue.java:363)
android.os.Looper.loop(Looper.java:176)
android.os.HandlerThread.run(HandlerThread.java:67)

# oaid(73549)
android.os.MessageQueue.nativePollOnce(Native Method)
android.os.MessageQueue.next(MessageQueue.java:363)
android.os.Looper.loop(Looper.java:176)
android.os.HandlerThread.run(HandlerThread.java:67)

# openDeviceIdentifier(73551)
android.os.MessageQueue.nativePollOnce(Native Method)
android.os.MessageQueue.next(MessageQueue.java:363)
android.os.Looper.loop(Looper.java:176)
android.os.HandlerThread.run(HandlerThread.java:67)

# queued-work-looper(73552)
android.os.MessageQueue.nativePollOnce(Native Method)
android.os.MessageQueue.next(MessageQueue.java:363)
android.os.Looper.loop(Looper.java:176)
android.os.HandlerThread.run(HandlerThread.java:67)

# OpenSDK.Client.File.Tracer(73554)
android.os.MessageQueue.nativePollOnce(Native Method)
android.os.MessageQueue.next(MessageQueue.java:363)
android.os.Looper.loop(Looper.java:176)
android.os.HandlerThread.run(HandlerThread.java:67)

# pool-4-thread-1(73557)
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
java.lang.Thread.run(Thread.java:929)

# pool-6-thread-1(73560)
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
java.lang.Thread.run(Thread.java:929)

# Timer-0(73561)
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Object.java:442)
java.util.TimerThread.mainLoop(Timer.java:559)
java.util.TimerThread.run(Timer.java:512)

# ConnectivityThread(73564)
android.os.MessageQueue.nativePollOnce(Native Method)
android.os.MessageQueue.next(MessageQueue.java:363)
android.os.Looper.loop(Looper.java:176)
android.os.HandlerThread.run(HandlerThread.java:67)

# Thread-10(73568)
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:548)
rich.d.run(Unknown Source:26)

# Thread-11(73569)
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:548)
rich.i.run(Unknown Source:10)

# Thread-12(73570)
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:548)
rich.i.run(Unknown Source:10)

# Thread-13(73571)
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:548)
rich.i.run(Unknown Source:10)

# Thread-14(73572)
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:548)
rich.i.run(Unknown Source:10)

# com.qq.gdt.action.ActionReporter.Worker(73573)
android.os.MessageQueue.nativePollOnce(Native Method)
android.os.MessageQueue.next(MessageQueue.java:363)
android.os.Looper.loop(Looper.java:176)
android.os.HandlerThread.run(HandlerThread.java:67)

# pool-10-thread-1(73576)
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
java.lang.Thread.run(Thread.java:929)

# OkHttp ConnectionPool(73578)
java.lang.Object.wait(Native Method)
com.android.okhttp.ConnectionPool$1.run(ConnectionPool.java:106)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
java.lang.Thread.run(Thread.java:929)

# pool-5-thread-1(73580)
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
java.lang.Thread.run(Thread.java:929)

# receive HandlerThread(73581)
android.os.MessageQueue.nativePollOnce(Native Method)
android.os.MessageQueue.next(MessageQueue.java:363)
android.os.Looper.loop(Looper.java:176)
android.os.HandlerThread.run(HandlerThread.java:67)

# Okio Watchdog(73583)
java.lang.Object.wait(Native Method)
com.android.okhttp.okio.AsyncTimeout.awaitTimeout(AsyncTimeout.java:325)
com.android.okhttp.okio.AsyncTimeout.access$000(AsyncTimeout.java:42)
com.android.okhttp.okio.AsyncTimeout$Watchdog.run(AsyncTimeout.java:288)

# pool-9-thread-1(73584)
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
java.lang.Thread.run(Thread.java:929)

# AudioPortEventHandler(73587)
android.os.MessageQueue.nativePollOnce(Native Method)
android.os.MessageQueue.next(MessageQueue.java:363)
android.os.Looper.loop(Looper.java:176)
android.os.HandlerThread.run(HandlerThread.java:67)

# FMODAudioDevice(73589)
android.media.AudioTrack.native_write_byte(Native Method)
android.media.AudioTrack.write(AudioTrack.java:2557)
android.media.AudioTrack.write(AudioTrack.java:2490)
org.fmod.FMODAudioDevice.run(Unknown Source:190)
java.lang.Thread.run(Thread.java:929)

# UnityChoreographer(73591)
android.os.MessageQueue.nativePollOnce(Native Method)
android.os.MessageQueue.next(MessageQueue.java:363)
android.os.Looper.loop(Looper.java:176)
android.os.HandlerThread.run(HandlerThread.java:67)

# BUGLY_THREAD(73599)
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1127)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849)
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
java.lang.Thread.run(Thread.java:929)

# BUGLY_THREAD(73600)
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1127)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849)
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
java.lang.Thread.run(Thread.java:929)

# BUGLY_THREAD(73601)
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2109)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1132)
java.util.concurrent.ScheduledThreadPoolExecu

We’ve seen this crash call stack before and it was related to a bug in Android.