Код: Выделить всё
backtrace:
#00 pc 0x000000000004f560 /apex/com.android.runtime/lib64/bionic/libc.so (syscall+32)
#01 pc 0x000000000030d9a8 /apex/com.android.art/lib64/libart.so (art::Mutex::ExclusiveLock(art::Thread*)+280)
#02 pc 0x00000000005fe8b4 /apex/com.android.art/lib64/libart.so (art::Libraries::UnloadNativeLibraries()+96)
#03 pc 0x00000000003ba968 /apex/com.android.art/lib64/libart.so (art::gc::Heap::CollectGarbageInternal(art::gc::collector::GcType, art::gc::GcCause, bool, unsigned int)+876)
#04 pc 0x00000000003ba50c /apex/com.android.art/lib64/libart.so (art::gc::Heap::ConcurrentGC(art::Thread*, art::gc::GcCause, bool, unsigned int)+164)
Caused DefaultDispatcher-worker-9 failure : SuspendThreadByPeer timed out: 14060 (HeapTaskDaemon), state&flags: 0x9, priority: 5, barriers: 0x, ours: 0x, barrier value: 1, nsusps: 0, ncheckpts: 0, thread_info: Target states: [14060 (HeapTaskDaemon) S 1097 1097 0 0 -1 1077936192 231570 372 345 3 170 481 0 1 24 4 74, 14060 (HeapTaskDaemon) S 1097 1097 0 0 -1 1077936192 390055 372 345 3 219 832 0 1 24 4 74]1@517142581380 Final wait time: 4.010s
Однако я просто не мог понять, как такое могло произойти. В своем приложении я создаю собственную библиотеку, которую загружаю во время выполнения. Я не знаю, делает ли эта собственная библиотека что-то не так.
Что может делать собственная библиотека, чтобы ART не смог получить блокировку? ? Могу ли я еще что-нибудь сделать, чтобы устранить эту проблему?
Подробнее здесь: https://stackoverflow.com/questions/792 ... ative-libr