2013-11-26 81 views
2

我們的應用程序有時會在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應用程序。

回答

0

我還沒有看到ANR跟蹤中的主線程堆棧,它在哪裏?

而且,從「java.lang.ProcessManager」棧中,我猜你正在通過派生子進程來做些什麼?

我以前遇到過這個問題,在等待子進程退出時,Java進程封裝器有時會被阻塞,這是非常奇怪的錯誤。

我不確定這是一個錯誤,在我的情況下,我的子進程已經離開,但主進程仍在主線程中等待它。然後ANR發生了。

最後,我寫了一些JNI代碼來封裝C庫「system(」cmd「)」來解決這個問題。

+0

我的應用程序不使用任何本機過程控制。它甚至不使用'android.os.Process'或'java.lang.Process'(儘管第三方的lib crittercism可能)。 我確實認爲主要線程丟失並不是一個好兆頭。 – Diederik

+0

您是否可以使用adb shell登錄設備,找到您的進程的PID並捕獲文件/ proc/PID /堆棧以查看C堆棧? – Robin

+0

沒有固定的設備,所以'cat/proc/21220/stack'和'kill -3 21220'是不允許的。 – Diederik

相關問題