После того, как я добавил Firebase в свое приложение, я получаю довольно много ANR. Я не могу воспроизвести их, несмотря ни на что, но все 100% из них происходят на фоне на фоне в моем Broadcastreceiver .
К счастью, они не воспринимаются на переднем плане, но я понятия не имею, почему они происходят на первом месте, как я следую всем рекомендованным практикам:
want to do a potentially heavy work (even though I measured these calls and they are never more than 30ms, and in average
class MyReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
...
// signal OS to keep my receiver alive, as I want to do some "heavy" work...
val pendingResult = goAsync()
// do some work on the background thread
CoroutineScope(Dispatcher.IO).launch {
try {
// fetch fresh values (only 1x every 12 hours)
Firebase.remoteConfig.fetchAndActivate()
} catch (e: Exception) {
Timber.e("finish() call failed!")
} finally {
// signal OS that I'm done and my receiver can be terminated
pendingResult?.finish()
}
...
}
}
< /code>
И это журнал из Play Console: < /p>
"main" tid=1 Native
#00 pc 0x00000000000a14e8 /apex/com.android.runtime/lib64/bionic/libc.so (__epoll_pwait+8)
#01 pc 0x00000000000168d4 /system/lib64/libutils.so (android::Looper::pollInner(int)+180)
#02 pc 0x00000000000167b8 /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+112)
#03 pc 0x0000000000153f0c /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44)
at android.os.MessageQueue.nativePollOnce (Native method)
at android.os.MessageQueue.next (MessageQueue.java:335)
at android.os.Looper.loopOnce (Looper.java:186)
at android.os.Looper.loop (Looper.java:313)
at android.app.ActivityThread.main (ActivityThread.java:8751)
at java.lang.reflect.Method.invoke (Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1135)
"Signal Catcher" tid=6 Runnable
#00 pc 0x0000000000567274 /apex/com.android.art/lib64/libart.so (art::DumpNativeStack(std::__1::basic_ostream&, int, BacktraceMap*, char const*, art::ArtMethod*, void*, bool)+140)
#01 pc 0x0000000000680184 /apex/com.android.art/lib64/libart.so (art::Thread::DumpStack(std::__1::basic_ostream&, bool, BacktraceMap*, bool) const+356)
#02 pc 0x000000000069e6ec /apex/com.android.art/lib64/libart.so (art::DumpCheckpoint::Run(art::Thread*)+916)
#03 pc 0x0000000000698124 /apex/com.android.art/lib64/libart.so (art::ThreadList::RunCheckpoint(art::Closure*, art::Closure*)+524)
#04 pc 0x00000000006972e4 /apex/com.android.art/lib64/libart.so (art::ThreadList::Dump(std::__1::basic_ostream&, bool)+1460)
#05 pc 0x0000000000696bec /apex/com.android.art/lib64/libart.so (art::ThreadList::DumpForSigQuit(std::__1::basic_ostream&)+1396)
#06 pc 0x0000000000641708 /apex/com.android.art/lib64/libart.so (art::Runtime::DumpForSigQuit(std::__1::basic_ostream&)+208)
#07 pc 0x0000000000657240 /apex/com.android.art/lib64/libart.so (art::SignalCatcher::HandleSigQuit()+1400)
#08 pc 0x0000000000656208 /apex/com.android.art/lib64/libart.so (art::SignalCatcher::Run(void*)+344)
#09 pc 0x00000000000b4b38 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264)
#10 pc 0x0000000000052c60 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
"perfetto_hprof_listener" tid=7 Native
#00 pc 0x00000000000a0284 /apex/com.android.runtime/lib64/bionic/libc.so (read+4)
#01 pc 0x00000000000211e8 /apex/com.android.art/lib64/libperfetto_hprof.so (void* std::__1::__thread_proxy(void*)+280)
#02 pc 0x00000000000b4b38 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264)
#03 pc 0x0000000000052c60 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
"Jit thread pool worker thread 0" tid=8 Native
#00 pc 0x000000000004d81c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28)
#01 pc 0x000000000028cccc /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148)
#02 pc 0x00000000006a00e8 /apex/com.android.art/lib64/libart.so (art::ThreadPool::GetTask(art::Thread*)+120)
#03 pc 0x000000000069f4e8 /apex/com.android.art/lib64/libart.so (art::ThreadPoolWorker::Run()+144)
#04 pc 0x000000000069ef88 /apex/com.android.art/lib64/libart.so (art::ThreadPoolWorker::Callback(void*)+192)
#05 pc 0x00000000000b4b38 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264)
#06 pc 0x0000000000052c60 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
"FinalizerWatchdogDaemon" tid=9 Timed Waiting
at java.lang.Thread.sleep (Native method)
at java.lang.Thread.sleep (Thread.java:451)
at java.lang.Thread.sleep (Thread.java:356)
at java.lang.Daemons$FinalizerWatchdogDaemon.sleepForNanos (Daemons.java:390)
at java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization (Daemons.java:419)
at java.lang.Daemons$FinalizerWatchdogDaemon.runInternal (Daemons.java:325)
at java.lang.Daemons$Daemon.run (Daemons.java:139)
at java.lang.Thread.run (Thread.java:920)
"HeapTaskDaemon" tid=10 Waiting
#00 pc 0x0000000000334534 /apex/com.android.art/lib64/libart.so (art::gc::collector::ConcurrentCopying::ImmuneSpaceCaptureRefsVisitor::Callback(art::mirror::Object*, void*)+84)
#01 pc 0x000000000032c868 /apex/com.android.art/lib64/libart.so (art::gc::collector::ConcurrentCopying::MarkingPhase()+352)
#02 pc 0x000000000032bd64 /apex/com.android.art/lib64/libart.so (art::gc::collector::ConcurrentCopying::RunPhases()+244)
#03 pc 0x0000000000353264 /apex/com.android.art/lib64/libart.so (art::gc::collector::GarbageCollector::Run(art::gc::GcCause, bool)+316)
#04 pc 0x0000000000370cd8 /apex/com.android.art/lib64/libart.so (art::gc::Heap::CollectGarbageInternal(art::gc::collector::GcType, art::gc::GcCause, bool, unsigned int)+3128)
#05 pc 0x0000000000380214 /apex/com.android.art/lib64/libart.so (art::gc::Heap::ConcurrentGC(art::Thread*, art::gc::GcCause, bool, unsigned int)+148)
#06 pc 0x00000000003862a0 /apex/com.android.art/lib64/libart.so (art::gc::Heap::ConcurrentGCTask::Run(art::Thread*)+72)
#07 pc 0x00000000003b9138 /apex/com.android.art/lib64/libart.so (art::gc::TaskProcessor::RunAllTasks(art::Thread*)+64)
at dalvik.system.VMRuntime.runHeapTasks (Native method)
at java.lang.Daemons$HeapTaskDaemon.runInternal (Daemons.java:531)
at java.lang.Daemons$Daemon.run (Daemons.java:139)
at java.lang.Thread.run (Thread.java:920)
"ReferenceQueueDaemon" tid=11 Waiting
at java.lang.Object.wait (Native method)
at java.lang.Object.wait (Object.java:442)
at java.lang.Object.wait (Object.java:568)
at java.lang.Daemons$ReferenceQueueDaemon.runInternal (Daemons.java:217)
at java.lang.Daemons$Daemon.run (Daemons.java:139)
at java.lang.Thread.run (Thread.java:920)
"FinalizerDaemon" tid=12 Waiting
at java.lang.Object.wait (Native method)
at java.lang.Object.wait (Object.java:442)
at java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:190)
at java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:211)
at java.lang.Daemons$FinalizerDaemon.runInternal (Daemons.java:273)
at java.lang.Daemons$Daemon.run (Daemons.java:139)
at java.lang.Thread.run (Thread.java:920)
"Binder:13498_1" tid=13 Native
#00 pc 0x00000000000a0524 /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+4)
#01 pc 0x000000000005aea4 /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156)
#02 pc 0x0000000000045ae4 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+292)
#03 pc 0x0000000000045dc8 /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+24)
#04 pc 0x00000000000466cc /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+68)
#05 pc 0x000000000006cf5c /system/lib64/libbinder.so (android::PoolThread::threadLoop()+380)
#06 pc 0x000000000001223c /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+260)
#07 pc 0x00000000000bf044 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+140)
#08 pc 0x0000000000011acc /system/lib64/libutils.so (thread_data_t::trampoline(thread_data_t const*)+404)
#09 pc 0x00000000000b4b38 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264)
#10 pc 0x0000000000052c60 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
"Binder:13498_2" tid=14 Native
#00 pc 0x00000000000a0524 /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+4)
#01 pc 0x000000000005aea4 /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156)
#02 pc 0x0000000000045ae4 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+292)
#03 pc 0x0000000000045dc8 /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+24)
#04 pc 0x00000000000466cc /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+68)
#05 pc 0x000000000006cf5c /system/lib64/libbinder.so (android::PoolThread::threadLoop()+380)
#06 pc 0x000000000001223c /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+260)
#07 pc 0x00000000000bf044 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+140)
#08 pc 0x0000000000011acc /system/lib64/libutils.so (thread_data_t::trampoline(thread_data_t const*)+404)
#09 pc 0x00000000000b4b38 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264)
#10 pc 0x0000000000052c60 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
"Binder:13498_3" tid=15 Native
#00 pc 0x00000000000a0524 /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+4)
#01 pc 0x000000000005aea4 /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156)
#02 pc 0x0000000000045ae4 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+292)
#03 pc 0x0000000000045dc8 /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+24)
#04 pc 0x00000000000466cc /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+68)
#05 pc 0x000000000006cf5c /system/lib64/libbinder.so (android::PoolThread::threadLoop()+380)
#06 pc 0x000000000001223c /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+260)
#07 pc 0x00000000000bf044 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+140)
#08 pc 0x0000000000011acc /system/lib64/libutils.so (thread_data_t::trampoline(thread_data_t const*)+404)
#09 pc 0x00000000000b4b38 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264)
#10 pc 0x0000000000052c60 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
"pool-8-thread-1" tid=5 Runnable
at java.util.TreeMap.put (TreeMap.java:568)
at androidx.profileinstaller.ProfileTranscoder.readMethodBitmap (ProfileTranscoder.java)
at androidx.profileinstaller.ProfileTranscoder.readUncompressedBody (ProfileTranscoder.java)
at androidx.profileinstaller.ProfileTranscoder.readProfile (ProfileTranscoder.java)
at androidx.profileinstaller.DeviceProfileWriter.readProfileInternal (DeviceProfileWriter.java)
at androidx.profileinstaller.DeviceProfileWriter.read (DeviceProfileWriter.java)
at androidx.profileinstaller.ProfileInstaller.transcodeAndWrite (ProfileInstaller.java)
at androidx.profileinstaller.ProfileInstaller.writeProfile (ProfileInstaller.java)
at androidx.profileinstaller.ProfileInstaller.writeProfile (ProfileInstaller.java)
at androidx.profileinstaller.ProfileInstaller.writeProfile (ProfileInstaller.java)
at androidx.profileinstaller.ProfileInstallerInitializer.lambda$writeInBackground$2 (ProfileInstallerInitializer.java)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
at java.lang.Thread.run (Thread.java:920)
"Profile Saver" tid=16 Native
#00 pc 0x000000000004d81c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28)
#01 pc 0x000000000028cccc /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148)
#02 pc 0x0000000000422f30 /apex/com.android.art/lib64/libart.so (art::ProfileSaver::Run()+544)
#03 pc 0x0000000000428438 /apex/com.android.art/lib64/libart.so (art::ProfileSaver::RunProfileSaverThread(void*)+176)
#04 pc 0x00000000000b4b38 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264)
#05 pc 0x0000000000052c60 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
"Firebase Blocking Thread #0" tid=18 Timed Waiting
at sun.misc.Unsafe.park (Native method)
at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:230)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill (SynchronousQueue.java:461)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer (SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll (SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0 (CustomThreadFactory.java)
at java.lang.Thread.run (Thread.java:920)
"ScionFrontendApi" tid=19 Timed Waiting
at sun.misc.Unsafe.park (Native method)
at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:230)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2109)
at java.util.concurrent.LinkedBlockingQueue.poll (LinkedBlockingQueue.java:467)
at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
at java.lang.Thread.run (Thread.java:920)
"Firebase Background Thread #0" tid=20 Waiting
at sun.misc.Unsafe.park (Native method)
at java.util.concurrent.locks.LockSupport.park (LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0 (CustomThreadFactory.java)
at java.lang.Thread.run (Thread.java:920)
"GmsDynamite" tid=21 Waiting
at java.lang.Object.wait (Native method)
at java.lang.Object.wait (Object.java:442)
at java.lang.Object.wait (Object.java:568)
at com.google.android.gms.dynamite.zza.run (com.google.android.gms:play-services-basement@@18.5.0)
"WM.task-1" tid=23 Waiting
at sun.misc.Unsafe.park (Native method)
at java.util.concurrent.locks.LockSupport.park (LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
at java.lang.Thread.run (Thread.java:920)
"Firebase Blocking Thread #1" tid=22 Timed Waiting
at sun.misc.Unsafe.park (Native method)
at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:230)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill (SynchronousQueue.java:461)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer (SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll (SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0 (CustomThreadFactory.java)
at java.lang.Thread.run (Thread.java:920)
"DefaultDispatcher-worker-1" tid=24 Timed Waiting
at sun.misc.Unsafe.park (Native method)
at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:353)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park (CoroutineScheduler.kt)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark (CoroutineScheduler.kt)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker (CoroutineScheduler.kt)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run (CoroutineScheduler.kt)
"Firebase Blocking Thread #2" tid=25 Timed Waiting
at sun.misc.Unsafe.park (Native method)
at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:230)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill (SynchronousQueue.java:461)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer (SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll (SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0 (CustomThreadFactory.java)
at java.lang.Thread.run (Thread.java:920)
"DefaultDispatcher-worker-2" tid=26 Timed Waiting
at sun.misc.Unsafe.park (Native method)
at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:353)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park (CoroutineScheduler.kt)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark (CoroutineScheduler.kt)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker (CoroutineScheduler.kt)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run (CoroutineScheduler.kt)
"DefaultDispatcher-worker-3" tid=28 Timed Waiting
at sun.misc.Unsafe.park (Native method)
at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:353)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park (CoroutineScheduler.kt)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark (CoroutineScheduler.kt)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker (CoroutineScheduler.kt)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run (CoroutineScheduler.kt)
"Firebase Blocking Thread #3" tid=29 Timed Waiting
at sun.misc.Unsafe.park (Native method)
at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:230)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill (SynchronousQueue.java:461)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer (SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll (SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0 (CustomThreadFactory.java)
at java.lang.Thread.run (Thread.java:920)
"DefaultDispatcher-worker-4" tid=30 Timed Waiting
at sun.misc.Unsafe.park (Native method)
at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:353)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park (CoroutineScheduler.kt)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark (CoroutineScheduler.kt)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker (CoroutineScheduler.kt)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run (CoroutineScheduler.kt)
"DefaultDispatcher-worker-5" tid=31 Timed Waiting
at sun.misc.Unsafe.park (Native method)
at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:353)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park (CoroutineScheduler.kt)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark (CoroutineScheduler.kt)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker (CoroutineScheduler.kt)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run (CoroutineScheduler.kt)
"Firebase Background Thread #1" tid=33 Waiting
at sun.misc.Unsafe.park (Native method)
at java.util.concurrent.locks.LockSupport.park (LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0 (CustomThreadFactory.java)
at java.lang.Thread.run (Thread.java:920)
"Firebase Background Thread #2" tid=35 Waiting
at sun.misc.Unsafe.park (Native method)
at java.util.concurrent.locks.LockSupport.park (LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0 (CustomThreadFactory.java)
at java.lang.Thread.run (Thread.java:920)
"PlayBillingLibrary-1" tid=40 Waiting
at sun.misc.Unsafe.park (Native method)
at java.util.concurrent.locks.LockSupport.park (LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2067)
at java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
at java.lang.Thread.run (Thread.java:920)
"Measurement Worker" tid=2 Native
#00 pc 0x000000000004d81c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28)
#01 pc 0x000000000028cccc /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148)
#02 pc 0x0000000000744654 /apex/com.android.art/lib64/libart.so (art::GoToRunnable(art::Thread*)+428)
#03 pc 0x0000000000744470 /apex/com.android.art/lib64/libart.so (art::JniMethodEnd(unsigned int, art::Thread*)+24)
at android.os.MessageQueue.nativeWake (Native method)
at android.os.MessageQueue.enqueueMessage (MessageQueue.java:598)
at android.os.Handler.enqueueMessage (Handler.java:778)
at android.os.Handler.sendMessageAtTime (Handler.java:727)
at android.os.Handler.sendMessageDelayed (Handler.java:697)
at android.os.Handler.sendEmptyMessageDelayed (Handler.java:662)
at android.app.QueuedWork.queue (QueuedWork.java:229)
at android.app.SharedPreferencesImpl.enqueueDiskWrite (SharedPreferencesImpl.java:696)
at android.app.SharedPreferencesImpl.access$100 (SharedPreferencesImpl.java:59)
at android.app.SharedPreferencesImpl$EditorImpl.apply (SharedPreferencesImpl.java:505)
at m7.pp.a (:com.google.android.gms.dynamite_measurementdynamite@252431029@25.24.31 (190400-0):16)
at m7.uk.a (:com.google.android.gms.dynamite_measurementdynamite@252431029@25.24.31 (190400-0):27)
at m7.qc.run (:com.google.android.gms.dynamite_measurementdynamite@252431029@25.24.31 (190400-0):1266)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:462)
at java.util.concurrent.FutureTask.run (FutureTask.java:266)
at m7.pz.run (:com.google.android.gms.dynamite_measurementdynamite@252431029@25.24.31 (190400-0):48)
"PlayBillingLibrary-2" tid=3 Native
#00 pc 0x00000000000a0524 /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+4)
#01 pc 0x000000000005aea4 /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156)
#02 pc 0x0000000000045ae4 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+292)
#03 pc 0x0000000000046d00 /system/lib64/libbinder.so (android::IPCThreadState::waitForResponse(android::Parcel*, int*)+128)
#04 pc 0x0000000000046a08 /system/lib64/libbinder.so (android::IPCThreadState::transact(int, unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+216)
#05 pc 0x000000000003e950 /system/lib64/libbinder.so (android::BpBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+192)
#06 pc 0x00000000001687c0 /system/lib64/libandroid_runtime.so (android_os_BinderProxy_transact(_JNIEnv*, _jobject*, int, _jobject*, _jobject*, int)+152)
at android.os.BinderProxy.transactNative (Native method)
at android.os.BinderProxy.transact (BinderProxy.java:635)
at com.google.android.gms.internal.play_billing.zzp.zzs (com.android.billingclient:billing@@6.1.0)
at com.google.android.gms.internal.play_billing.zzk.zzj (com.android.billingclient:billing@@6.1.0)
at com.android.billingclient.api.BillingClientImpl.zzX (com.android.billingclient:billing@@6.1.0)
at com.android.billingclient.api.zzah.call (com.android.billingclient:billing@@6.1.0)
at java.util.concurrent.FutureTask.run (FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641)
at java.lang.Thread.run (Thread.java:920)
"queued-work-looper" tid=4 Blocked
at android.os.MessageQueue.next (MessageQueue.java:337)
at android.os.Looper.loopOnce (Looper.java:186)
at android.os.Looper.loop (Looper.java:313)
at android.os.HandlerThread.run (HandlerThread.java:67)
После того, как я добавил Firebase в свое приложение, я получаю довольно много ANR. Я не могу воспроизвести их, несмотря ни на что, но все 100% из них происходят на фоне на фоне в моем Broadcastreceiver . К счастью, они не воспринимаются на переднем плане, но я понятия не имею, почему они происходят на первом месте, как я следую всем рекомендованным практикам: [list]
want to do a potentially heavy work (even though I measured these calls and they are never more than 30ms, and in average class MyReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) { ... // signal OS to keep my receiver alive, as I want to do some "heavy" work... val pendingResult = goAsync() // do some work on the background thread CoroutineScope(Dispatcher.IO).launch { try { // fetch fresh values (only 1x every 12 hours) Firebase.remoteConfig.fetchAndActivate() } catch (e: Exception) { Timber.e("finish() call failed!") } finally { // signal OS that I'm done and my receiver can be terminated pendingResult?.finish() } ... } } < /code> И это журнал из Play Console: < /p> "main" tid=1 Native #00 pc 0x00000000000a14e8 /apex/com.android.runtime/lib64/bionic/libc.so (__epoll_pwait+8) #01 pc 0x00000000000168d4 /system/lib64/libutils.so (android::Looper::pollInner(int)+180) #02 pc 0x00000000000167b8 /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+112) #03 pc 0x0000000000153f0c /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44) at android.os.MessageQueue.nativePollOnce (Native method) at android.os.MessageQueue.next (MessageQueue.java:335) at android.os.Looper.loopOnce (Looper.java:186) at android.os.Looper.loop (Looper.java:313) at android.app.ActivityThread.main (ActivityThread.java:8751) at java.lang.reflect.Method.invoke (Native method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:571) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1135)
"Signal Catcher" tid=6 Runnable #00 pc 0x0000000000567274 /apex/com.android.art/lib64/libart.so (art::DumpNativeStack(std::__1::basic_ostream&, int, BacktraceMap*, char const*, art::ArtMethod*, void*, bool)+140) #01 pc 0x0000000000680184 /apex/com.android.art/lib64/libart.so (art::Thread::DumpStack(std::__1::basic_ostream&, bool, BacktraceMap*, bool) const+356) #02 pc 0x000000000069e6ec /apex/com.android.art/lib64/libart.so (art::DumpCheckpoint::Run(art::Thread*)+916) #03 pc 0x0000000000698124 /apex/com.android.art/lib64/libart.so (art::ThreadList::RunCheckpoint(art::Closure*, art::Closure*)+524) #04 pc 0x00000000006972e4 /apex/com.android.art/lib64/libart.so (art::ThreadList::Dump(std::__1::basic_ostream&, bool)+1460) #05 pc 0x0000000000696bec /apex/com.android.art/lib64/libart.so (art::ThreadList::DumpForSigQuit(std::__1::basic_ostream&)+1396) #06 pc 0x0000000000641708 /apex/com.android.art/lib64/libart.so (art::Runtime::DumpForSigQuit(std::__1::basic_ostream&)+208) #07 pc 0x0000000000657240 /apex/com.android.art/lib64/libart.so (art::SignalCatcher::HandleSigQuit()+1400) #08 pc 0x0000000000656208 /apex/com.android.art/lib64/libart.so (art::SignalCatcher::Run(void*)+344) #09 pc 0x00000000000b4b38 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264) #10 pc 0x0000000000052c60 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
"perfetto_hprof_listener" tid=7 Native #00 pc 0x00000000000a0284 /apex/com.android.runtime/lib64/bionic/libc.so (read+4) #01 pc 0x00000000000211e8 /apex/com.android.art/lib64/libperfetto_hprof.so (void* std::__1::__thread_proxy(void*)+280) #02 pc 0x00000000000b4b38 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264) #03 pc 0x0000000000052c60 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
"Jit thread pool worker thread 0" tid=8 Native #00 pc 0x000000000004d81c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28) #01 pc 0x000000000028cccc /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148) #02 pc 0x00000000006a00e8 /apex/com.android.art/lib64/libart.so (art::ThreadPool::GetTask(art::Thread*)+120) #03 pc 0x000000000069f4e8 /apex/com.android.art/lib64/libart.so (art::ThreadPoolWorker::Run()+144) #04 pc 0x000000000069ef88 /apex/com.android.art/lib64/libart.so (art::ThreadPoolWorker::Callback(void*)+192) #05 pc 0x00000000000b4b38 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264) #06 pc 0x0000000000052c60 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
"FinalizerWatchdogDaemon" tid=9 Timed Waiting at java.lang.Thread.sleep (Native method) at java.lang.Thread.sleep (Thread.java:451) at java.lang.Thread.sleep (Thread.java:356) at java.lang.Daemons$FinalizerWatchdogDaemon.sleepForNanos (Daemons.java:390) at java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization (Daemons.java:419) at java.lang.Daemons$FinalizerWatchdogDaemon.runInternal (Daemons.java:325) at java.lang.Daemons$Daemon.run (Daemons.java:139) at java.lang.Thread.run (Thread.java:920)
"HeapTaskDaemon" tid=10 Waiting #00 pc 0x0000000000334534 /apex/com.android.art/lib64/libart.so (art::gc::collector::ConcurrentCopying::ImmuneSpaceCaptureRefsVisitor::Callback(art::mirror::Object*, void*)+84) #01 pc 0x000000000032c868 /apex/com.android.art/lib64/libart.so (art::gc::collector::ConcurrentCopying::MarkingPhase()+352) #02 pc 0x000000000032bd64 /apex/com.android.art/lib64/libart.so (art::gc::collector::ConcurrentCopying::RunPhases()+244) #03 pc 0x0000000000353264 /apex/com.android.art/lib64/libart.so (art::gc::collector::GarbageCollector::Run(art::gc::GcCause, bool)+316) #04 pc 0x0000000000370cd8 /apex/com.android.art/lib64/libart.so (art::gc::Heap::CollectGarbageInternal(art::gc::collector::GcType, art::gc::GcCause, bool, unsigned int)+3128) #05 pc 0x0000000000380214 /apex/com.android.art/lib64/libart.so (art::gc::Heap::ConcurrentGC(art::Thread*, art::gc::GcCause, bool, unsigned int)+148) #06 pc 0x00000000003862a0 /apex/com.android.art/lib64/libart.so (art::gc::Heap::ConcurrentGCTask::Run(art::Thread*)+72) #07 pc 0x00000000003b9138 /apex/com.android.art/lib64/libart.so (art::gc::TaskProcessor::RunAllTasks(art::Thread*)+64) at dalvik.system.VMRuntime.runHeapTasks (Native method) at java.lang.Daemons$HeapTaskDaemon.runInternal (Daemons.java:531) at java.lang.Daemons$Daemon.run (Daemons.java:139) at java.lang.Thread.run (Thread.java:920)
"ReferenceQueueDaemon" tid=11 Waiting at java.lang.Object.wait (Native method) at java.lang.Object.wait (Object.java:442) at java.lang.Object.wait (Object.java:568) at java.lang.Daemons$ReferenceQueueDaemon.runInternal (Daemons.java:217) at java.lang.Daemons$Daemon.run (Daemons.java:139) at java.lang.Thread.run (Thread.java:920)
"FinalizerDaemon" tid=12 Waiting at java.lang.Object.wait (Native method) at java.lang.Object.wait (Object.java:442) at java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:190) at java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:211) at java.lang.Daemons$FinalizerDaemon.runInternal (Daemons.java:273) at java.lang.Daemons$Daemon.run (Daemons.java:139) at java.lang.Thread.run (Thread.java:920)
"Binder:13498_1" tid=13 Native #00 pc 0x00000000000a0524 /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+4) #01 pc 0x000000000005aea4 /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156) #02 pc 0x0000000000045ae4 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+292) #03 pc 0x0000000000045dc8 /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+24) #04 pc 0x00000000000466cc /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+68) #05 pc 0x000000000006cf5c /system/lib64/libbinder.so (android::PoolThread::threadLoop()+380) #06 pc 0x000000000001223c /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+260) #07 pc 0x00000000000bf044 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+140) #08 pc 0x0000000000011acc /system/lib64/libutils.so (thread_data_t::trampoline(thread_data_t const*)+404) #09 pc 0x00000000000b4b38 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264) #10 pc 0x0000000000052c60 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
"Binder:13498_2" tid=14 Native #00 pc 0x00000000000a0524 /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+4) #01 pc 0x000000000005aea4 /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156) #02 pc 0x0000000000045ae4 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+292) #03 pc 0x0000000000045dc8 /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+24) #04 pc 0x00000000000466cc /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+68) #05 pc 0x000000000006cf5c /system/lib64/libbinder.so (android::PoolThread::threadLoop()+380) #06 pc 0x000000000001223c /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+260) #07 pc 0x00000000000bf044 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+140) #08 pc 0x0000000000011acc /system/lib64/libutils.so (thread_data_t::trampoline(thread_data_t const*)+404) #09 pc 0x00000000000b4b38 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264) #10 pc 0x0000000000052c60 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
"Binder:13498_3" tid=15 Native #00 pc 0x00000000000a0524 /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+4) #01 pc 0x000000000005aea4 /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156) #02 pc 0x0000000000045ae4 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+292) #03 pc 0x0000000000045dc8 /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+24) #04 pc 0x00000000000466cc /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+68) #05 pc 0x000000000006cf5c /system/lib64/libbinder.so (android::PoolThread::threadLoop()+380) #06 pc 0x000000000001223c /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+260) #07 pc 0x00000000000bf044 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+140) #08 pc 0x0000000000011acc /system/lib64/libutils.so (thread_data_t::trampoline(thread_data_t const*)+404) #09 pc 0x00000000000b4b38 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264) #10 pc 0x0000000000052c60 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
"pool-8-thread-1" tid=5 Runnable at java.util.TreeMap.put (TreeMap.java:568) at androidx.profileinstaller.ProfileTranscoder.readMethodBitmap (ProfileTranscoder.java) at androidx.profileinstaller.ProfileTranscoder.readUncompressedBody (ProfileTranscoder.java) at androidx.profileinstaller.ProfileTranscoder.readProfile (ProfileTranscoder.java) at androidx.profileinstaller.DeviceProfileWriter.readProfileInternal (DeviceProfileWriter.java) at androidx.profileinstaller.DeviceProfileWriter.read (DeviceProfileWriter.java) at androidx.profileinstaller.ProfileInstaller.transcodeAndWrite (ProfileInstaller.java) at androidx.profileinstaller.ProfileInstaller.writeProfile (ProfileInstaller.java) at androidx.profileinstaller.ProfileInstaller.writeProfile (ProfileInstaller.java) at androidx.profileinstaller.ProfileInstaller.writeProfile (ProfileInstaller.java) at androidx.profileinstaller.ProfileInstallerInitializer.lambda$writeInBackground$2 (ProfileInstallerInitializer.java) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641) at java.lang.Thread.run (Thread.java:920)
"Profile Saver" tid=16 Native #00 pc 0x000000000004d81c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28) #01 pc 0x000000000028cccc /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148) #02 pc 0x0000000000422f30 /apex/com.android.art/lib64/libart.so (art::ProfileSaver::Run()+544) #03 pc 0x0000000000428438 /apex/com.android.art/lib64/libart.so (art::ProfileSaver::RunProfileSaverThread(void*)+176) #04 pc 0x00000000000b4b38 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264) #05 pc 0x0000000000052c60 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
"Firebase Blocking Thread #0" tid=18 Timed Waiting at sun.misc.Unsafe.park (Native method) at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:230) at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill (SynchronousQueue.java:461) at java.util.concurrent.SynchronousQueue$TransferStack.transfer (SynchronousQueue.java:362) at java.util.concurrent.SynchronousQueue.poll (SynchronousQueue.java:937) at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1091) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1152) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641) at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0 (CustomThreadFactory.java) at java.lang.Thread.run (Thread.java:920)
"ScionFrontendApi" tid=19 Timed Waiting at sun.misc.Unsafe.park (Native method) at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:230) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2109) at java.util.concurrent.LinkedBlockingQueue.poll (LinkedBlockingQueue.java:467) at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1091) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1152) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641) at java.lang.Thread.run (Thread.java:920)
"Firebase Background Thread #0" tid=20 Waiting at sun.misc.Unsafe.park (Native method) at java.util.concurrent.locks.LockSupport.park (LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2067) at java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1092) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1152) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641) at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0 (CustomThreadFactory.java) at java.lang.Thread.run (Thread.java:920)
"GmsDynamite" tid=21 Waiting at java.lang.Object.wait (Native method) at java.lang.Object.wait (Object.java:442) at java.lang.Object.wait (Object.java:568) at com.google.android.gms.dynamite.zza.run (com.google.android.gms:play-services-basement@@18.5.0)
"WM.task-1" tid=23 Waiting at sun.misc.Unsafe.park (Native method) at java.util.concurrent.locks.LockSupport.park (LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2067) at java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1092) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1152) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641) at java.lang.Thread.run (Thread.java:920)
"Firebase Blocking Thread #1" tid=22 Timed Waiting at sun.misc.Unsafe.park (Native method) at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:230) at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill (SynchronousQueue.java:461) at java.util.concurrent.SynchronousQueue$TransferStack.transfer (SynchronousQueue.java:362) at java.util.concurrent.SynchronousQueue.poll (SynchronousQueue.java:937) at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1091) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1152) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641) at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0 (CustomThreadFactory.java) at java.lang.Thread.run (Thread.java:920)
"DefaultDispatcher-worker-1" tid=24 Timed Waiting at sun.misc.Unsafe.park (Native method) at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:353) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park (CoroutineScheduler.kt) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark (CoroutineScheduler.kt) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker (CoroutineScheduler.kt) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run (CoroutineScheduler.kt)
"Firebase Blocking Thread #2" tid=25 Timed Waiting at sun.misc.Unsafe.park (Native method) at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:230) at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill (SynchronousQueue.java:461) at java.util.concurrent.SynchronousQueue$TransferStack.transfer (SynchronousQueue.java:362) at java.util.concurrent.SynchronousQueue.poll (SynchronousQueue.java:937) at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1091) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1152) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641) at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0 (CustomThreadFactory.java) at java.lang.Thread.run (Thread.java:920)
"DefaultDispatcher-worker-2" tid=26 Timed Waiting at sun.misc.Unsafe.park (Native method) at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:353) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park (CoroutineScheduler.kt) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark (CoroutineScheduler.kt) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker (CoroutineScheduler.kt) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run (CoroutineScheduler.kt)
"DefaultDispatcher-worker-3" tid=28 Timed Waiting at sun.misc.Unsafe.park (Native method) at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:353) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park (CoroutineScheduler.kt) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark (CoroutineScheduler.kt) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker (CoroutineScheduler.kt) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run (CoroutineScheduler.kt)
"Firebase Blocking Thread #3" tid=29 Timed Waiting at sun.misc.Unsafe.park (Native method) at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:230) at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill (SynchronousQueue.java:461) at java.util.concurrent.SynchronousQueue$TransferStack.transfer (SynchronousQueue.java:362) at java.util.concurrent.SynchronousQueue.poll (SynchronousQueue.java:937) at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1091) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1152) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641) at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0 (CustomThreadFactory.java) at java.lang.Thread.run (Thread.java:920)
"DefaultDispatcher-worker-4" tid=30 Timed Waiting at sun.misc.Unsafe.park (Native method) at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:353) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park (CoroutineScheduler.kt) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark (CoroutineScheduler.kt) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker (CoroutineScheduler.kt) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run (CoroutineScheduler.kt)
"DefaultDispatcher-worker-5" tid=31 Timed Waiting at sun.misc.Unsafe.park (Native method) at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:353) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.park (CoroutineScheduler.kt) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.tryPark (CoroutineScheduler.kt) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker (CoroutineScheduler.kt) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run (CoroutineScheduler.kt)
"Firebase Background Thread #1" tid=33 Waiting at sun.misc.Unsafe.park (Native method) at java.util.concurrent.locks.LockSupport.park (LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2067) at java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1092) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1152) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641) at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0 (CustomThreadFactory.java) at java.lang.Thread.run (Thread.java:920)
"Firebase Background Thread #2" tid=35 Waiting at sun.misc.Unsafe.park (Native method) at java.util.concurrent.locks.LockSupport.park (LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2067) at java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1092) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1152) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641) at com.google.firebase.concurrent.CustomThreadFactory.lambda$newThread$0 (CustomThreadFactory.java) at java.lang.Thread.run (Thread.java:920)
"PlayBillingLibrary-1" tid=40 Waiting at sun.misc.Unsafe.park (Native method) at java.util.concurrent.locks.LockSupport.park (LockSupport.java:190) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2067) at java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:442) at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1092) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1152) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641) at java.lang.Thread.run (Thread.java:920)
"Measurement Worker" tid=2 Native #00 pc 0x000000000004d81c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28) #01 pc 0x000000000028cccc /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+148) #02 pc 0x0000000000744654 /apex/com.android.art/lib64/libart.so (art::GoToRunnable(art::Thread*)+428) #03 pc 0x0000000000744470 /apex/com.android.art/lib64/libart.so (art::JniMethodEnd(unsigned int, art::Thread*)+24) at android.os.MessageQueue.nativeWake (Native method) at android.os.MessageQueue.enqueueMessage (MessageQueue.java:598) at android.os.Handler.enqueueMessage (Handler.java:778) at android.os.Handler.sendMessageAtTime (Handler.java:727) at android.os.Handler.sendMessageDelayed (Handler.java:697) at android.os.Handler.sendEmptyMessageDelayed (Handler.java:662) at android.app.QueuedWork.queue (QueuedWork.java:229) at android.app.SharedPreferencesImpl.enqueueDiskWrite (SharedPreferencesImpl.java:696) at android.app.SharedPreferencesImpl.access$100 (SharedPreferencesImpl.java:59) at android.app.SharedPreferencesImpl$EditorImpl.apply (SharedPreferencesImpl.java:505) at m7.pp.a (:com.google.android.gms.dynamite_measurementdynamite@252431029@25.24.31 (190400-0):16) at m7.uk.a (:com.google.android.gms.dynamite_measurementdynamite@252431029@25.24.31 (190400-0):27) at m7.qc.run (:com.google.android.gms.dynamite_measurementdynamite@252431029@25.24.31 (190400-0):1266) at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:462) at java.util.concurrent.FutureTask.run (FutureTask.java:266) at m7.pz.run (:com.google.android.gms.dynamite_measurementdynamite@252431029@25.24.31 (190400-0):48)
"PlayBillingLibrary-2" tid=3 Native #00 pc 0x00000000000a0524 /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+4) #01 pc 0x000000000005aea4 /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156) #02 pc 0x0000000000045ae4 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+292) #03 pc 0x0000000000046d00 /system/lib64/libbinder.so (android::IPCThreadState::waitForResponse(android::Parcel*, int*)+128) #04 pc 0x0000000000046a08 /system/lib64/libbinder.so (android::IPCThreadState::transact(int, unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+216) #05 pc 0x000000000003e950 /system/lib64/libbinder.so (android::BpBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+192) #06 pc 0x00000000001687c0 /system/lib64/libandroid_runtime.so (android_os_BinderProxy_transact(_JNIEnv*, _jobject*, int, _jobject*, _jobject*, int)+152) at android.os.BinderProxy.transactNative (Native method) at android.os.BinderProxy.transact (BinderProxy.java:635) at com.google.android.gms.internal.play_billing.zzp.zzs (com.android.billingclient:billing@@6.1.0) at com.google.android.gms.internal.play_billing.zzk.zzj (com.android.billingclient:billing@@6.1.0) at com.android.billingclient.api.BillingClientImpl.zzX (com.android.billingclient:billing@@6.1.0) at com.android.billingclient.api.zzah.call (com.android.billingclient:billing@@6.1.0) at java.util.concurrent.FutureTask.run (FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:641) at java.lang.Thread.run (Thread.java:920)
"queued-work-looper" tid=4 Blocked at android.os.MessageQueue.next (MessageQueue.java:337) at android.os.Looper.loopOnce (Looper.java:186) at android.os.Looper.loop (Looper.java:313) at android.os.HandlerThread.run (HandlerThread.java:67)