我們的應用程序有時會在ANR長時間處於設備前臺後(比如說過夜)鎖定ANR。該應用程序啓動,但只顯示黑屏。在按下後約10秒後,回到和回家按鈕纔會響應。ANR經過長時間的應用程序正常運行時間後
在嚴格模式下運行應用程序不會突出顯示任何問題。所有網絡活動和長時間運行的任務都在後臺線程上完成。
看看我們的應用程序的跟蹤文件,我無法識別「主」線程,所以我無法診斷什麼是鎖定用戶界面。
This question聽起來像相同的症狀,但我們的應用程序不使用違規圖書館:JmDNS。
----- pid 21220 at 2013-11-26 08:32:09 -----
Cmd line: com.mygreatapp.reptile
DALVIK THREADS:
(mutexes: tll=0 tsl=0 tscl=0 ghl=0)
"java.lang.ProcessManager" daemon prio=5 tid=11 WAIT
| group="main" sCount=1 dsCount=0 obj=0x4242b590 self=0x60d506f0
| sysTid=21305 nice=0 sched=0/0 cgrp=apps handle=1626388752
| schedstat=(1686960 1679167 34) utm=0 stm=0 core=0
at java.lang.Object.wait(Native Method)
- waiting on <0x42413810> (a java.util.HashMap)
at java.lang.Object.wait(Object.java:364)
at java.lang.ProcessManager.waitForMoreChildren(ProcessManager.java:140)
at java.lang.ProcessManager.watchChildren(ProcessManager.java:105)
at java.lang.ProcessManager.access$000(ProcessManager.java:40)
at java.lang.ProcessManager$1.run(ProcessManager.java:58)
"Thread-30992" prio=5 tid=1 VMWAIT
| group="main" sCount=1 dsCount=0 obj=0x4528c3f8 self=0x60f0e488
| sysTid=21220 nice=0 sched=0/0 cgrp=apps handle=1074544432
| schedstat=(500594685618 30706953168 460765) utm=44353 stm=5705 core=3
#00 pc 0000dca0 /system/lib/libc.so (__futex_syscall3+8)
#01 pc 00012e44 /system/lib/libc.so (__pthread_cond_timedwait_relative+48)
#02 pc 00012ea0 /system/lib/libc.so (__pthread_cond_timedwait+60)
#03 pc 0004a1af /system/lib/libdvm.so
#04 pc 0003a4a1 /system/lib/libdvm.so
#05 pc 0004d585 /system/lib/libandroid_runtime.so (android::AndroidRuntime::start(char const*, char const*)+452)
#06 pc 00000dcf /system/bin/app_process
#07 pc 00017123 /system/lib/libc.so (__libc_init+38)
#08 pc 00000b34 /system/bin/app_process
at dalvik.system.NativeStart.run(Native Method)
"pool-4-thread-1" prio=5 tid=15 WAIT
| group="main" sCount=1 dsCount=0 obj=0x41e20c58 self=0x410e1520
| sysTid=21281 nice=0 sched=0/0 cgrp=apps handle=1089112720
| schedstat=(102424840 33825634 517) utm=6 stm=3 core=3
at java.lang.Object.wait(Native Method)
- waiting on <0x41cc4b30> (a java.lang.VMThread) held by tid=15 (pool-4-thread-1)
at java.lang.Thread.parkFor(Thread.java:1231)
at sun.misc.Unsafe.park(Unsafe.java:323)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
"Thread-30976" prio=5 tid=29 WAIT
| group="main" sCount=1 dsCount=0 obj=0x41e407c8 self=0x60b1cdf0
| sysTid=21279 nice=0 sched=0/0 cgrp=apps handle=1466754424
| schedstat=(22878231471 2961981162 8385) utm=2103 stm=184 core=0
at java.lang.Object.wait(Native Method)
- waiting on <0x41d189a8> (a java.lang.VMThread) held by tid=29 (Thread-30976)
at java.lang.Thread.parkFor(Thread.java:1231)
at sun.misc.Unsafe.park(Unsafe.java:323)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at crittercism.android.cq.a((null):-1)
at crittercism.android.cv.run((null):-1)
at java.lang.Thread.run(Thread.java:856)
"android.hardware.SystemSensorManager$SensorThread" prio=5 tid=28 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x41f7d9c8 self=0x60b5f5d0
| sysTid=21277 nice=-8 sched=0/0 cgrp=apps handle=1466031464
| schedstat=(629417858 226101457 2481) utm=62 stm=0 core=0
#00 pc 0000da70 /system/lib/libc.so (epoll_wait+12)
#01 pc 00014899 /system/lib/libutils.so (android::Looper::pollInner(int)+96)
#02 pc 00014b01 /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+104)
#03 pc 00023f5d /system/lib/libgui.so (android::SensorEventQueue::waitForEvent() const+36)
#04 pc 0007e085 /system/lib/libandroid_runtime.so
#05 pc 0001def0 /system/lib/libdvm.so (dvmPlatformInvoke+112)
#06 pc 0004d14b /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+394)
#07 pc 00000214 /dev/ashmem/dalvik-jit-code-cache (deleted)
at android.hardware.SystemSensorManager.sensors_data_poll(Native Method)
at android.hardware.SystemSensorManager$SensorThread$SensorThreadRunnable.run(SystemSensorManager.java:133)
at java.lang.Thread.run(Thread.java:856)
"Binder_4" prio=5 tid=26 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x41cedae0 self=0x58c98ec0
| sysTid=21272 nice=0 sched=0/0 cgrp=apps handle=1488945728
| schedstat=(701164079 37010713 402) utm=66 stm=4 core=0
#00 pc 0000cb90 /system/lib/libc.so (__ioctl+8)
#01 pc 00027fcd /system/lib/libc.so (ioctl+16)
#02 pc 00016bfd /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+124)
#03 pc 000173af /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+154)
#04 pc 0001b171 /system/lib/libbinder.so
#05 pc 0001104f /system/lib/libutils.so (android::Thread::_threadLoop(void*)+114)
#06 pc 0004ba7b /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+66)
#07 pc 00010bb5 /system/lib/libutils.so
#08 pc 00012e00 /system/lib/libc.so (__thread_entry+48)
#09 pc 00012558 /system/lib/libc.so (pthread_create+172)
at dalvik.system.NativeStart.run(Native Method)
"Binder_3" prio=5 tid=25 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x41cfbe58 self=0x58ca4e68
| sysTid=21271 nice=0 sched=0/0 cgrp=apps handle=1485257944
| schedstat=(29564295 25159912 195) utm=1 stm=1 core=0
#00 pc 0000cb90 /system/lib/libc.so (__ioctl+8)
#01 pc 00027fcd /system/lib/libc.so (ioctl+16)
#02 pc 00016bfd /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+124)
#03 pc 000173af /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+154)
#04 pc 0001b171 /system/lib/libbinder.so
#05 pc 0001104f /system/lib/libutils.so (android::Thread::_threadLoop(void*)+114)
#06 pc 0004ba7b /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+66)
#07 pc 00010bb5 /system/lib/libutils.so
#08 pc 00012e00 /system/lib/libc.so (__thread_entry+48)
#09 pc 00012558 /system/lib/libc.so (pthread_create+172)
at dalvik.system.NativeStart.run(Native Method)
"AsyncTask #5" prio=5 tid=24 WAIT
| group="main" sCount=1 dsCount=0 obj=0x41cf26f0 self=0x57682458
| sysTid=21266 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1464170168
| schedstat=(135820845754 105683034246 2907951) utm=10204 stm=3378 core=2
at java.lang.Object.wait(Native Method)
- waiting on <0x41d1d280> (a java.lang.VMThread) held by tid=24 (AsyncTask #5)
at java.lang.Thread.parkFor(Thread.java:1231)
at sun.misc.Unsafe.park(Unsafe.java:323)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
"AsyncTask #4" prio=5 tid=23 WAIT
| group="main" sCount=1 dsCount=0 obj=0x41edc388 self=0x57682008
| sysTid=21265 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1465817672
| schedstat=(132577127701 105107036747 2873808) utm=9956 stm=3301 core=2
at java.lang.Object.wait(Native Method)
- waiting on <0x41c8dbe0> (a java.lang.VMThread) held by tid=23 (AsyncTask #4)
at java.lang.Thread.parkFor(Thread.java:1231)
at sun.misc.Unsafe.park(Unsafe.java:323)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
"[email protected]@41eff7c8" daemon prio=5 tid=22 WAIT
| group="main" sCount=1 dsCount=0 obj=0x41e2ac40 self=0x576129a8
| sysTid=21262 nice=0 sched=0/0 cgrp=apps handle=1465983376
| schedstat=(211376 507582 7) utm=0 stm=0 core=2
at java.lang.Object.wait(Native Method)
- waiting on <0x41f00830> (a java.lang.ref.ReferenceQueue)
at java.lang.Object.wait(Object.java:401)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:102)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:73)
at org.apache.http.impl.conn.tsccm.RefQueueWorker.run(RefQueueWorker.java:102)
at java.lang.Thread.run(Thread.java:856)
"AsyncTask #3" prio=5 tid=21 WAIT
| group="main" sCount=1 dsCount=0 obj=0x41ea3cd8 self=0x40e8a150
| sysTid=21261 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1088988576
| schedstat=(147758360521 113209347880 3132414) utm=11120 stm=3655 core=0
at java.lang.Object.wait(Native Method)
- waiting on <0x41eb3510> (a java.lang.VMThread) held by tid=21 (AsyncTask #3)
at java.lang.Thread.parkFor(Thread.java:1231)
at sun.misc.Unsafe.park(Unsafe.java:323)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:813)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:973)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1282)
at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:207)
at roboguice.util.SafeAsyncTask$Task.postToUiThreadAndWait(SafeAsyncTask.java:285)
at roboguice.util.SafeAsyncTask$Task.doFinally(SafeAsyncTask.java:248)
at roboguice.util.SafeAsyncTask$Task.call(SafeAsyncTask.java:188)
at roboguice.util.SafeAsyncTask$Task.call(SafeAsyncTask.java:158)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
"AsyncTask #2" prio=5 tid=20 WAIT
| group="main" sCount=1 dsCount=0 obj=0x41f6d6c0 self=0x57600af0
| sysTid=21260 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1465924288
| schedstat=(137061046899 106138943361 2940968) utm=10317 stm=3388 core=0
at java.lang.Object.wait(Native Method)
- waiting on <0x41f6d990> (a java.lang.VMThread) held by tid=20 (AsyncTask #2)
at java.lang.Thread.parkFor(Thread.java:1231)
at sun.misc.Unsafe.park(Unsafe.java:323)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
"pool-3-thread-1" prio=5 tid=19 WAIT
| group="main" sCount=1 dsCount=0 obj=0x41ec84e8 self=0x57600688
| sysTid=21259 nice=0 sched=0/0 cgrp=apps handle=1089548880
| schedstat=(333892046105 50531397520 395232) utm=24001 stm=9387 core=3
at java.lang.Object.wait(Native Method)
- waiting on <0x41cd3cb0> (a java.lang.VMThread) held by tid=19 (pool-3-thread-1)
at java.lang.Thread.parkFor(Thread.java:1231)
at sun.misc.Unsafe.park(Unsafe.java:323)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
"AsyncTask #1" prio=5 tid=18 WAIT
| group="main" sCount=1 dsCount=0 obj=0x41e43190 self=0x57600238
| sysTid=21258 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=1093436480
| schedstat=(122133361244 94201913504 2662437) utm=9133 stm=3079 core=3
at java.lang.Object.wait(Native Method)
- waiting on <0x41e93b30> (a java.lang.VMThread) held by tid=18 (AsyncTask #1)
at java.lang.Thread.parkFor(Thread.java:1231)
at sun.misc.Unsafe.park(Unsafe.java:323)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
"pool-1-thread-1" prio=5 tid=17 WAIT
| group="main" sCount=1 dsCount=0 obj=0x41d8d558 self=0x40018928
| sysTid=21257 nice=0 sched=0/0 cgrp=apps handle=1073843576
| schedstat=(538748652 44112875 1633) utm=30 stm=23 core=2
at java.lang.Object.wait(Native Method)
- waiting on <0x41d958b8> (a java.lang.VMThread) held by tid=17 (pool-1-thread-1)
at java.lang.Thread.parkFor(Thread.java:1231)
at sun.misc.Unsafe.park(Unsafe.java:323)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2022)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1009)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1069)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
"com.google.inject.internal.util.$Finalizer" daemon prio=5 tid=14 WAIT
| group="main" sCount=1 dsCount=0 obj=0x41d82388 self=0x40ea8430
| sysTid=21248 nice=0 sched=0/0 cgrp=apps handle=1089147888
| schedstat=(135958 26125 2) utm=0 stm=0 core=2
at java.lang.Object.wait(Native Method)
- waiting on <0x41d824a8> (a java.lang.ref.ReferenceQueue)
at java.lang.Object.wait(Object.java:401)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:102)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:73)
at com.google.inject.internal.util.$Finalizer.run(Finalizer.java:114)
"OPTMZ" prio=5 tid=12 WAIT
| group="main" sCount=1 dsCount=0 obj=0x41ce5b60 self=0x40f1c8c8
| sysTid=21243 nice=0 sched=0/0 cgrp=apps handle=1089677856
| schedstat=(241167 3985041 22) utm=0 stm=0 core=1
at java.lang.Object.wait(Native Method)
- waiting on <0x41ce5530> (a android.os.ConditionVariable)
at java.lang.Object.wait(Object.java:364)
at android.os.ConditionVariable.block(ConditionVariable.java:97)
at crittercism.android.f.run((null):-1)
at crittercism.android.cq.a((null):-1)
at crittercism.android.cv.run((null):-1)
at java.lang.Thread.run(Thread.java:856)
"Binder_2" prio=5 tid=10 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x41c97448 self=0x40f17500
| sysTid=21232 nice=0 sched=0/0 cgrp=apps handle=1089092880
| schedstat=(35924382 39652369 228) utm=1 stm=2 core=0
#00 pc 0000cb90 /system/lib/libc.so (__ioctl+8)
#01 pc 00027fcd /system/lib/libc.so (ioctl+16)
#02 pc 00016bfd /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+124)
#03 pc 000173af /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+154)
#04 pc 0001b171 /system/lib/libbinder.so
#05 pc 0001104f /system/lib/libutils.so (android::Thread::_threadLoop(void*)+114)
#06 pc 0004ba7b /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+66)
#07 pc 00010bb5 /system/lib/libutils.so
#08 pc 00012e00 /system/lib/libc.so (__thread_entry+48)
#09 pc 00012558 /system/lib/libc.so (pthread_create+172)
at dalvik.system.NativeStart.run(Native Method)
"Binder_1" prio=5 tid=9 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x41c971b8 self=0x40eb0008
| sysTid=21231 nice=0 sched=0/0 cgrp=apps handle=1088983768
| schedstat=(41858044 25543380 342) utm=2 stm=2 core=0
#00 pc 0000cb90 /system/lib/libc.so (__ioctl+8)
#01 pc 00027fcd /system/lib/libc.so (ioctl+16)
#02 pc 00016bfd /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+124)
#03 pc 000173af /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+154)
#04 pc 0001b171 /system/lib/libbinder.so
#05 pc 0001104f /system/lib/libutils.so (android::Thread::_threadLoop(void*)+114)
#06 pc 0004ba7b /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+66)
#07 pc 00010bb5 /system/lib/libutils.so
#08 pc 00012e00 /system/lib/libc.so (__thread_entry+48)
#09 pc 00012558 /system/lib/libc.so (pthread_create+172)
at dalvik.system.NativeStart.run(Native Method)
"FinalizerWatchdogDaemon" daemon prio=5 tid=8 WAIT
| group="system" sCount=1 dsCount=0 obj=0x41c94180 self=0x40e096f0
| sysTid=21230 nice=0 sched=0/0 cgrp=apps handle=1089149536
| schedstat=(193951857 409607638 3031) utm=8 stm=10 core=0
at java.lang.Object.wait(Native Method)
- waiting on <0x41311cf8> (a java.lang.Daemons$FinalizerWatchdogDaemon)
at java.lang.Object.wait(Object.java:364)
at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:214)
at java.lang.Thread.run(Thread.java:856)
"FinalizerDaemon" daemon prio=5 tid=7 WAIT
| group="system" sCount=1 dsCount=0 obj=0x41c93fd0 self=0x40ea38c0
| sysTid=21229 nice=0 sched=0/0 cgrp=apps handle=1074231352
| schedstat=(2874811820 653275129 6681) utm=224 stm=62 core=3
at java.lang.Object.wait(Native Method)
- waiting on <0x413005d0> (a java.lang.ref.ReferenceQueue)
at java.lang.Object.wait(Object.java:401)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:102)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:73)
at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:169)
at java.lang.Thread.run(Thread.java:856)
"ReferenceQueueDaemon" daemon prio=5 tid=6 WAIT
| group="system" sCount=1 dsCount=0 obj=0x41c93e68 self=0x40ea78a8
| sysTid=21228 nice=0 sched=0/0 cgrp=apps handle=1089109240
| schedstat=(579457779 268872517 10279) utm=44 stm=13 core=0
at java.lang.Object.wait(Native Method)
- waiting on <0x413004f8>
at java.lang.Object.wait(Object.java:364)
at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:129)
at java.lang.Thread.run(Thread.java:856)
"Compiler" daemon prio=5 tid=5 VMWAIT
| group="system" sCount=1 dsCount=0 obj=0x41c93d78 self=0x40ed3568
| sysTid=21227 nice=0 sched=0/0 cgrp=apps handle=1089689680
| schedstat=(13840664945 2175691525 62372) utm=829 stm=555 core=3
#00 pc 0000dca0 /system/lib/libc.so (__futex_syscall3+8)
#01 pc 00012e44 /system/lib/libc.so (__pthread_cond_timedwait_relative+48)
#02 pc 00012ea0 /system/lib/libc.so (__pthread_cond_timedwait+60)
#03 pc 0006f955 /system/lib/libdvm.so
#04 pc 00053b8f /system/lib/libdvm.so
#05 pc 00012e00 /system/lib/libc.so (__thread_entry+48)
#06 pc 00012558 /system/lib/libc.so (pthread_create+172)
at dalvik.system.NativeStart.run(Native Method)
"JDWP" daemon prio=5 tid=4 VMWAIT
| group="system" sCount=1 dsCount=0 obj=0x41c93c90 self=0x40dcf718
| sysTid=21226 nice=0 sched=0/0 cgrp=apps handle=1087520184
| schedstat=(164604246 215945407 747) utm=14 stm=1 core=1
#00 pc 0000d758 /system/lib/libc.so (recvmsg+8)
#01 pc 00060383 /system/lib/libdvm.so
#02 pc 00060581 /system/lib/libdvm.so
#03 pc 0006327b /system/lib/libdvm.so
#04 pc 00053b8f /system/lib/libdvm.so
#05 pc 00012e00 /system/lib/libc.so (__thread_entry+48)
#06 pc 00012558 /system/lib/libc.so (pthread_create+172)
at dalvik.system.NativeStart.run(Native Method)
"Signal Catcher" daemon prio=5 tid=3 RUNNABLE
| group="system" sCount=0 dsCount=0 obj=0x41c93b98 self=0x40f01ca8
| sysTid=21224 nice=0 sched=0/0 cgrp=apps handle=1089261720
| schedstat=(89234254 24155125 31) utm=4 stm=4 core=0
at dalvik.system.NativeStart.run(Native Method)
"GC" daemon prio=5 tid=2 VMWAIT
| group="system" sCount=1 dsCount=0 obj=0x41c93ab8 self=0x410cfde0
| sysTid=21222 nice=0 sched=0/0 cgrp=apps handle=1464184336
| schedstat=(75670018971 4421244466 25704) utm=7432 stm=135 core=3
#00 pc 0000dca0 /system/lib/libc.so (__futex_syscall3+8)
#01 pc 00012e44 /system/lib/libc.so (__pthread_cond_timedwait_relative+48)
#02 pc 00012ea0 /system/lib/libc.so (__pthread_cond_timedwait+60)
#03 pc 0006e65b /system/lib/libdvm.so
#04 pc 00053b8f /system/lib/libdvm.so
#05 pc 00012e00 /system/lib/libc.so (__thread_entry+48)
#06 pc 00012558 /system/lib/libc.so (pthread_create+172)
at dalvik.system.NativeStart.run(Native Method)
NATIVE THREADS:
"ekeeper.reptile" sysTid=21267 nice=0 sched=0/0 cgrp=apps
| schedstat=(18500 0 1) utm=0 stm=0 core=0
"ekeeper.reptile" sysTid=21268 nice=0 sched=0/0 cgrp=apps
| schedstat=(572297498 198605347 10711) utm=25 stm=32 core=1
"ekeeper.reptile" sysTid=21269 nice=0 sched=0/0 cgrp=apps
| schedstat=(1489497433 692708683 24726) utm=39 stm=109 core=2
----- end 21220 -----
更多信息在dumpstate文件中。 (在ANR之後從/data/log/dumpstate_app_anr.txt.gz中從設備中檢索)使用Unix用戶app_112的應用程序的進程ID爲16042。查看更詳細的logcat(搜索文件中的MAIN LOG),它看起來像OutOfMemoryException。但我會期待JVM崩潰並重啓,而不是在這個殭屍狀態中鎖定。什麼是保持應用程序崩潰成功?
更多的信息/ proc/PID /文件夾在zip file凍結的Android應用程序。
我的應用程序不使用任何本機過程控制。它甚至不使用'android.os.Process'或'java.lang.Process'(儘管第三方的lib crittercism可能)。 我確實認爲主要線程丟失並不是一個好兆頭。 – Diederik
您是否可以使用adb shell登錄設備,找到您的進程的PID並捕獲文件/ proc/PID /堆棧以查看C堆棧? – Robin
沒有固定的設備,所以'cat/proc/21220/stack'和'kill -3 21220'是不允許的。 – Diederik