调试Android ANR。最糟糕的情况

4

在一些更新之后,我的应用程序开始显示ANR对话框。具体来说,它每30秒显示一次,直到进程被杀死才停止。我已经检查了整个代码,没有找到UI文件/网络访问。所以我谷歌了一下,发现可能是死锁问题。我从设备中提取了traces.txt文件,但这些信息并没有给我带来任何帮助。以下是traces:

----- pid 15756 at 2015-01-28 17:53:32 -----
Cmd line: com.sapphire.microphone:CameraServiceProcess
ABI: arm
Build type: optimized
Loaded classes: 3647 allocated classes
Intern table: 4694 strong; 312 weak
JNI: CheckJNI is on; globals=249 (plus 1 weak)
Libraries: /data/app/com.sapphire.microphone-1/lib/arm/libspeex.so /system/lib/libandroid.so /system/lib/libaudioeffect_jni.so /system/lib/libcompiler_rt.so /system/lib/libjavacrypto.so /system/lib/libjnigraphics.so /system/lib/libmedia_jni.so /system/lib/librs_jni.so /system/lib/libsoundpool.so /system/lib/libwebviewchromium_loader.so libjavacore.so (11)
Heap: 12% free, 18MB/21MB; 51428 objects
Dumping cumulative Gc timings
Start Dumping histograms for 1 iterations for sticky concurrent mark sweep
MarkRootsCheckpoint:    Sum: 7.194ms 99% C.I. 0.362ms-6.832ms Avg: 3.597ms Max: 6.832ms
ScanGrayImageSpaceObjects:  Sum: 2.213ms 99% C.I. 0.095ms-2.118ms Avg: 1.106ms Max: 2.118ms
FreeList:   Sum: 2.008ms 99% C.I. 112us-178us Avg: 167.333us Max: 178us
MarkConcurrentRoots:    Sum: 1.711ms 99% C.I. 6us-1705us Avg: 855.500us Max: 1705us
ScanGrayZygoteSpaceObjects: Sum: 1.048ms 99% C.I. 137us-911us Avg: 524us Max: 911us
ScanGrayAllocSpaceObjects:  Sum: 929us 99% C.I. 2us-835us Avg: 232.250us Max: 847us
ZygoteModUnionClearCards:   Sum: 477us 99% C.I. 233us-244us Avg: 238.500us Max: 244us
MarkingPhase:   Sum: 400us 99% C.I. 400us-400us Avg: 400us Max: 400us
SweepArray: Sum: 360us 99% C.I. 360us-360us Avg: 360us Max: 360us
ImageModUnionClearCards:    Sum: 288us 99% C.I. 119us-169us Avg: 144us Max: 169us
AllocSpaceClearCards:   Sum: 225us 99% C.I. 2us-114us Avg: 56.250us Max: 114us
(Paused)ScanGrayZygoteSpaceObjects: Sum: 135us 99% C.I. 135us-135us Avg: 135us Max: 135us
ReMarkRoots:    Sum: 133us 99% C.I. 133us-133us Avg: 133us Max: 133us
(Paused)ScanGrayImageSpaceObjects:  Sum: 92us 99% C.I. 92us-92us Avg: 92us Max: 92us
(Paused)ScanGrayAllocSpaceObjects:  Sum: 71us 99% C.I. 2us-69us Avg: 35.500us Max: 69us
MarkNonThreadRoots: Sum: 58us 99% C.I. 20us-38us Avg: 29us Max: 38us
FinishPhase:    Sum: 52us 99% C.I. 52us-52us Avg: 52us Max: 52us
SweepSystemWeaks:   Sum: 38us 99% C.I. 38us-38us Avg: 38us Max: 38us
(Paused)PausePhase: Sum: 26us 99% C.I. 26us-26us Avg: 26us Max: 26us
ProcessCards:   Sum: 21us 99% C.I. 8us-13us Avg: 10.500us Max: 13us
PreCleanCards:  Sum: 15us 99% C.I. 15us-15us Avg: 15us Max: 15us
ProcessMarkStack:   Sum: 11us 99% C.I. 0.250us-8us Avg: 2.750us Max: 8us
EnqueueFinalizerReferences: Sum: 10us 99% C.I. 10us-10us Avg: 10us Max: 10us
BindBitmaps:    Sum: 8us 99% C.I. 8us-8us Avg: 8us Max: 8us
InitializePhase:    Sum: 7us 99% C.I. 7us-7us Avg: 7us Max: 7us
MarkRoots:  Sum: 6us 99% C.I. 6us-6us Avg: 6us Max: 6us
ProcessReferences:  Sum: 5us 99% C.I. 5us-5us Avg: 5us Max: 5us
SwapStacks: Sum: 3us 99% C.I. 3us-3us Avg: 3us Max: 3us
FindDefaultSpaceBitmap: Sum: 2us 99% C.I. 2us-2us Avg: 2us Max: 2us
(Paused)ProcessMarkStack:   Sum: 1us 99% C.I. 1us-1us Avg: 1us Max: 1us
Done Dumping histograms 
sticky concurrent mark sweep paused:    Sum: 510us 99% C.I. 510us-510us Avg: 510us Max: 510us
sticky concurrent mark sweep total time: 17.647ms mean time: 17.647ms
sticky concurrent mark sweep freed: 11846 objects with total size 5MB
sticky concurrent mark sweep throughput: 696824/s / 304MB/s
Start Dumping histograms for 1 iterations for marksweep + semispace
ProcessMarkStack:   Sum: 8.984ms 99% C.I. 0.001ms-8.911ms Avg: 4.492ms Max: 8.983ms
ClearCardTable: Sum: 6.088ms 99% C.I. 6.088ms-6.088ms Avg: 6.088ms Max: 6.088ms
MarkRoots:  Sum: 2.112ms 99% C.I. 2.112ms-2.112ms Avg: 2.112ms Max: 2.112ms
UpdateAndMarkImageModUnionTable:    Sum: 1.172ms 99% C.I. 1.172ms-1.172ms Avg: 1.172ms Max: 1.172ms
SweepLargeObjects:  Sum: 338us 99% C.I. 338us-338us Avg: 338us Max: 338us
RevokeAllThreadLocalBuffers:    Sum: 224us 99% C.I. 106us-118us Avg: 112us Max: 118us
ZygoteModUnionClearCards:   Sum: 171us 99% C.I. 171us-171us Avg: 171us Max: 171us
MarkStackAsLive:    Sum: 134us 99% C.I. 134us-134us Avg: 134us Max: 134us
ImageModUnionClearCards:    Sum: 120us 99% C.I. 120us-120us Avg: 120us Max: 120us
FinishPhase:    Sum: 118us 99% C.I. 118us-118us Avg: 118us Max: 118us
UpdateAndMarkZygoteModUnionTable:   Sum: 117us 99% C.I. 117us-117us Avg: 117us Max: 117us
AllocSpaceClearCards:   Sum: 86us 99% C.I. 1us-77us Avg: 28.666us Max: 77us
SweepSystemWeaks:   Sum: 50us 99% C.I. 50us-50us Avg: 50us Max: 50us
SweepAllocSpace:    Sum: 17us 99% C.I. 17us-17us Avg: 17us Max: 17us
RevokeAllThreadLocalAllocationStacks:   Sum: 15us 99% C.I. 15us-15us Avg: 15us Max: 15us
MarkReachableObjects:   Sum: 10us 99% C.I. 10us-10us Avg: 10us Max: 10us
ProcessCards:   Sum: 8us 99% C.I. 8us-8us Avg: 8us Max: 8us
(Paused)EnqueueFinalizerReferences: Sum: 7us 99% C.I. 7us-7us Avg: 7us Max: 7us
ReclaimPhase:   Sum: 6us 99% C.I. 6us-6us Avg: 6us Max: 6us
(Paused)ProcessReferences:  Sum: 5us 99% C.I. 5us-5us Avg: 5us Max: 5us
InitializePhase:    Sum: 2us 99% C.I. 2us-2us Avg: 2us Max: 2us
PostGcVerificationPaused:   Sum: 0 99% C.I. 0ns-0ns Avg: 0ns Max: 0ns
Done Dumping histograms 
marksweep + semispace paused:   Sum: 20.169ms 99% C.I. 20.169ms-20.169ms Avg: 20.169ms Max: 20.169ms
marksweep + semispace total time: 19.822ms mean time: 19.822ms
marksweep + semispace freed: 3469 objects with total size 1548KB
marksweep + semispace throughput: 182579/s / 79MB/s
Total time spent in GC: 37.469ms
Mean GC size throughput: 2GB/s
Mean GC object throughput: 5.86439e+07 objects/s
Total number of allocations 2248758
Total bytes allocated 129MB
Free memory 2MB
Free memory until GC 2MB
Free memory until OOME 493MB
Total memory 21MB
Max memory 512MB
Total mutator paused time: 20.679ms
Total time waiting for GC to complete: 3.583ms

DALVIK THREADS (16):
"main" prio=5 tid=1 Native
  | group="main" sCount=1 dsCount=0 obj=0x734f2ec0 self=0xb5007800
  | sysTid=15756 nice=0 cgrp=apps sched=0/0 handle=0xb6f69ec8
  | state=S schedstat=( 51635212 97304004 262 ) utm=3 stm=2 core=0 HZ=100
  | stack=0xbe033000-0xbe035000 stackSize=8MB
  | held mutexes=
  native: #00 pc 0003a97c  /system/lib/libc.so (__epoll_pwait+20)
  native: #01 pc 00014571  /system/lib/libc.so (epoll_pwait+26)
  native: #02 pc 0001457f  /system/lib/libc.so (epoll_wait+6)
  native: #03 pc 000123c3  /system/lib/libutils.so (android::Looper::pollInner(int)+98)
  native: #04 pc 000125ed  /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+92)
  native: #05 pc 0007fb61  /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22)
  native: #06 pc 000b0da7  /data/dalvik-cache/arm/system@framework@boot.oat (Java_android_os_MessageQueue_nativePollOnce__JI+102)
  at android.os.MessageQueue.nativePollOnce(Native method)
  at android.os.MessageQueue.next(MessageQueue.java:143)
  at android.os.Looper.loop(Looper.java:122)
  at android.app.ActivityThread.main(ActivityThread.java:5221)
  at java.lang.reflect.Method.invoke!(Native method)
  at java.lang.reflect.Method.invoke(Method.java:372)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

"Heap thread pool worker thread 0" prio=5 tid=2 Native (still starting up)
  | group="" sCount=1 dsCount=0 obj=0x0 self=0xaff0e400
  | sysTid=15762 nice=0 cgrp=apps sched=0/0 handle=0xb50e9e80
  | state=S schedstat=( 906615 183647 10 ) utm=0 stm=0 core=1 HZ=100
  | stack=0xb487f000-0xb4881000 stackSize=1020KB
  | held mutexes=
  native: #00 pc 00012e98  /system/lib/libc.so (syscall+28)
  native: #01 pc 000aa023  /system/lib/libart.so (art::ConditionVariable::Wait(art::Thread*)+98)
  native: #02 pc 002405c5  /system/lib/libart.so (art::ThreadPool::GetTask(art::Thread*)+64)
  native: #03 pc 0024055f  /system/lib/libart.so (art::ThreadPoolWorker::Run()+62)
  native: #04 pc 00240e4d  /system/lib/libart.so (art::ThreadPoolWorker::Callback(void*)+60)
  native: #05 pc 000162e3  /system/lib/libc.so (__pthread_start(void*)+30)
  native: #06 pc 000142d3  /system/lib/libc.so (__start_thread+6)
  (no managed stack frames)

"Heap thread pool worker thread 1" prio=5 tid=3 Native (still starting up)
  | group="" sCount=1 dsCount=0 obj=0x0 self=0xafc0e400
  | sysTid=15763 nice=0 cgrp=apps sched=0/0 handle=0xb50ea100
  | state=S schedstat=( 721771 777396 6 ) utm=0 stm=0 core=1 HZ=100
  | stack=0xb477d000-0xb477f000 stackSize=1020KB
  | held mutexes=
  native: #00 pc 00012e98  /system/lib/libc.so (syscall+28)
  native: #01 pc 000aa023  /system/lib/libart.so (art::ConditionVariable::Wait(art::Thread*)+98)
  native: #02 pc 002405c5  /system/lib/libart.so (art::ThreadPool::GetTask(art::Thread*)+64)
  native: #03 pc 0024055f  /system/lib/libart.so (art::ThreadPoolWorker::Run()+62)
  native: #04 pc 00240e4d  /system/lib/libart.so (art::ThreadPoolWorker::Callback(void*)+60)
  native: #05 pc 000162e3  /system/lib/libc.so (__pthread_start(void*)+30)
  native: #06 pc 000142d3  /system/lib/libc.so (__start_thread+6)
  (no managed stack frames)

"Heap thread pool worker thread 2" prio=5 tid=4 Native (still starting up)
  | group="" sCount=1 dsCount=0 obj=0x0 self=0xaf90e400
  | sysTid=15764 nice=0 cgrp=apps sched=0/0 handle=0xb50ea380
  | state=S schedstat=( 721614 1358022 4 ) utm=0 stm=0 core=1 HZ=100
  | stack=0xb467d000-0xb467f000 stackSize=1020KB
  | held mutexes=
  native: #00 pc 00012e98  /system/lib/libc.so (syscall+28)
  native: #01 pc 000aa023  /system/lib/libart.so (art::ConditionVariable::Wait(art::Thread*)+98)
  native: #02 pc 002405c5  /system/lib/libart.so (art::ThreadPool::GetTask(art::Thread*)+64)
  native: #03 pc 0024055f  /system/lib/libart.so (art::ThreadPoolWorker::Run()+62)
  native: #04 pc 00240e4d  /system/lib/libart.so (art::ThreadPoolWorker::Callback(void*)+60)
  native: #05 pc 000162e3  /system/lib/libc.so (__pthread_start(void*)+30)
  native: #06 pc 000142d3  /system/lib/libc.so (__start_thread+6)
  (no managed stack frames)

"Signal Catcher" daemon prio=5 tid=5 Runnable
  | group="system" sCount=0 dsCount=0 obj=0x12c07080 self=0xaf60e400
  | sysTid=15765 nice=0 cgrp=apps sched=0/0 handle=0xb50ea600
  | state=R schedstat=( 246452811 74434949 189 ) utm=13 stm=11 core=0 HZ=100
  | stack=0xb456f000-0xb4571000 stackSize=1012KB
  | held mutexes= "thread list lock" "mutator lock"(exclusive held)
  native: #00 pc 00004c58  /system/lib/libbacktrace_libc++.so (UnwindCurrent::Unwind(unsigned int, ucontext*)+23)
  native: #01 pc 000034c1  /system/lib/libbacktrace_libc++.so (Backtrace::Unwind(unsigned int, ucontext*)+8)
  native: #02 pc 002526ad  /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, char const*, art::mirror::ArtMethod*)+84)
  native: #03 pc 0023618b  /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const+162)
  native: #04 pc 0023f585  /system/lib/libart.so (art::ThreadList::DumpForSigQuit(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)+160)
  native: #05 pc 00224563  /system/lib/libart.so (art::Runtime::DumpForSigQuit(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)+74)
  native: #06 pc 0022a803  /system/lib/libart.so (art::SignalCatcher::HandleSigQuit()+782)
  native: #07 pc 0022aeeb  /system/lib/libart.so (art::SignalCatcher::Run(void*)+338)
  native: #08 pc 000162e3  /system/lib/libc.so (__pthread_start(void*)+30)
  native: #09 pc 000142d3  /system/lib/libc.so (__start_thread+6)
  (no managed stack frames)

"JDWP" daemon prio=5 tid=6 WaitingInMainDebuggerLoop
  | group="system" sCount=1 dsCount=0 obj=0x12c070e0 self=0xaf30e400
  | sysTid=15766 nice=0 cgrp=apps sched=0/0 handle=0xb50ea880
  | state=S schedstat=( 1983127 2565363 18 ) utm=0 stm=0 core=0 HZ=100
  | stack=0xb446b000-0xb446d000 stackSize=1012KB
  | held mutexes=
  native: #00 pc 000395b4  /system/lib/libc.so (__pselect6+20)
  native: #01 pc 00015abb  /system/lib/libc.so (select+60)
  native: #02 pc 00296d8f  /system/lib/libart.so (art::JDWP::JdwpAdbState::ProcessIncoming()+202)
  native: #03 pc 00195f95  /system/lib/libart.so (art::JDWP::JdwpState::Run()+356)
  native: #04 pc 001974e1  /system/lib/libart.so (art::JDWP::StartJdwpThread(void*)+16)
  native: #05 pc 000162e3  /system/lib/libc.so (__pthread_start(void*)+30)
  native: #06 pc 000142d3  /system/lib/libc.so (__start_thread+6)
  (no managed stack frames)

"ReferenceQueueDaemon" daemon prio=5 tid=7 Waiting
  | group="system" sCount=1 dsCount=0 obj=0x12c07140 self=0xac3b1400
  | sysTid=15767 nice=0 cgrp=apps sched=0/0 handle=0xb50eab00
  | state=S schedstat=( 2369793 692187 57 ) utm=0 stm=0 core=1 HZ=100
  | stack=0xb4361000-0xb4363000 stackSize=1036KB
  | held mutexes=
  at java.lang.Object.wait!(Native method)
  - waiting on <0x371b1e9d> (a java.lang.Class<java.lang.ref.ReferenceQueue>)
  at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:133)
  - locked <0x371b1e9d> (a java.lang.Class<java.lang.ref.ReferenceQueue>)
  at java.lang.Thread.run(Thread.java:818)

"FinalizerWatchdogDaemon" daemon prio=5 tid=8 Waiting
  | group="system" sCount=1 dsCount=0 obj=0x12c071a0 self=0xac3b1c00
  | sysTid=15769 nice=0 cgrp=apps sched=0/0 handle=0xac3b2080
  | state=S schedstat=( 1485313 5042237 30 ) utm=0 stm=0 core=1 HZ=100
  | stack=0xb3ffa000-0xb3ffc000 stackSize=1036KB
  | held mutexes=
  at java.lang.Object.wait!(Native method)
  - waiting on <0x044e0f12> (a java.lang.Daemons$FinalizerWatchdogDaemon)
  at java.lang.Daemons$FinalizerWatchdogDaemon.waitForObject(Daemons.java:239)
  - locked <0x044e0f12> (a java.lang.Daemons$FinalizerWatchdogDaemon)
  at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:211)
  at java.lang.Thread.run(Thread.java:818)

"FinalizerDaemon" daemon prio=5 tid=9 Waiting
  | group="system" sCount=1 dsCount=0 obj=0x12c07200 self=0xac3b1800
  | sysTid=15768 nice=0 cgrp=apps sched=0/0 handle=0xb50ead80
  | state=S schedstat=( 3546042 3716407 27 ) utm=0 stm=0 core=1 HZ=100
  | stack=0xb40fe000-0xb4100000 stackSize=1036KB
  | held mutexes=
  at java.lang.Object.wait!(Native method)
  - waiting on <0x17c016e3> (a java.lang.ref.ReferenceQueue)
  at java.lang.Object.wait(Object.java:422)
  at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:101)
  - locked <0x17c016e3> (a java.lang.ref.ReferenceQueue)
  at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:72)
  at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:173)
  at java.lang.Thread.run(Thread.java:818)

"HeapTrimmerDaemon" daemon prio=5 tid=10 Waiting
  | group="system" sCount=1 dsCount=0 obj=0x12c07260 self=0xac87b800
  | sysTid=15770 nice=0 cgrp=apps sched=0/0 handle=0xac3b2300
  | state=S schedstat=( 82113595 48777811 138 ) utm=3 stm=5 core=1 HZ=100
  | stack=0xb3bfe000-0xb3c00000 stackSize=1036KB
  | held mutexes=
  at java.lang.Object.wait!(Native method)
  - waiting on <0x3a5518e0> (a java.lang.Daemons$HeapTrimmerDaemon)
  at java.lang.Daemons$HeapTrimmerDaemon.run(Daemons.java:310)
  - locked <0x3a5518e0> (a java.lang.Daemons$HeapTrimmerDaemon)
  at java.lang.Thread.run(Thread.java:818)

"GCDaemon" daemon prio=5 tid=11 Waiting
  | group="system" sCount=1 dsCount=0 obj=0x12c072c0 self=0xac87bc00
  | sysTid=15771 nice=0 cgrp=apps sched=0/0 handle=0xac3b2580
  | state=S schedstat=( 42271611 38934533 101 ) utm=3 stm=1 core=1 HZ=100
  | stack=0xb3afa000-0xb3afc000 stackSize=1036KB
  | held mutexes=
  at java.lang.Object.wait!(Native method)
  - waiting on <0x21100799> (a java.lang.Daemons$GCDaemon)
  at java.lang.Daemons$GCDaemon.run(Daemons.java:341)
  - locked <0x21100799> (a java.lang.Daemons$GCDaemon)
  at java.lang.Thread.run(Thread.java:818)

"Binder_1" prio=5 tid=12 Native
  | group="main" sCount=1 dsCount=0 obj=0x12c07320 self=0xaf806400
  | sysTid=15772 nice=0 cgrp=apps sched=0/0 handle=0xac3b2800
  | state=S schedstat=( 14070157 51598488 38 ) utm=1 stm=0 core=0 HZ=100
  | stack=0xafe04000-0xafe06000 stackSize=1012KB
  | held mutexes=
  native: #00 pc 0003ac04  /system/lib/libc.so (__ioctl+8)
  native: #01 pc 00051775  /system/lib/libc.so (ioctl+14)
  native: #02 pc 0001f39b  /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+138)
  native: #03 pc 0001f88b  /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+6)
  native: #04 pc 0001f8ed  /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+48)
  native: #05 pc 00023a5b  /system/lib/libbinder.so (???)
  native: #06 pc 000104d5  /system/lib/libutils.so (android::Thread::_threadLoop(void*)+112)
  native: #07 pc 0005df4d  /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+72)
  native: #08 pc 00010045  /system/lib/libutils.so (???)
  native: #09 pc 000162e3  /system/lib/libc.so (__pthread_start(void*)+30)
  native: #10 pc 000142d3  /system/lib/libc.so (__start_thread+6)
  (no managed stack frames)

"Binder_2" prio=5 tid=13 Native
  | group="main" sCount=1 dsCount=0 obj=0x12c07380 self=0xa4106400
  | sysTid=15774 nice=0 cgrp=apps sched=0/0 handle=0xaf826080
  | state=S schedstat=( 12279324 16626666 31 ) utm=0 stm=1 core=2 HZ=100
  | stack=0xaf504000-0xaf506000 stackSize=1012KB
  | held mutexes=
  native: #00 pc 0003ac04  /system/lib/libc.so (__ioctl+8)
  native: #01 pc 00051775  /system/lib/libc.so (ioctl+14)
  native: #02 pc 0001f39b  /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+138)
  native: #03 pc 0001f88b  /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+6)
  native: #04 pc 0001f8ed  /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+48)
  native: #05 pc 00023a5b  /system/lib/libbinder.so (???)
  native: #06 pc 000104d5  /system/lib/libutils.so (android::Thread::_threadLoop(void*)+112)
  native: #07 pc 0005df4d  /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+72)
  native: #08 pc 00010045  /system/lib/libutils.so (???)
  native: #09 pc 000162e3  /system/lib/libc.so (__pthread_start(void*)+30)
  native: #10 pc 000142d3  /system/lib/libc.so (__start_thread+6)
  (no managed stack frames)

"Binder_3" prio=5 tid=14 Native
  | group="main" sCount=1 dsCount=0 obj=0x12c073e0 self=0xa3f06400
  | sysTid=15775 nice=0 cgrp=apps sched=0/0 handle=0xa4126080
  | state=S schedstat=( 8225574 1019739 17 ) utm=0 stm=0 core=0 HZ=100
  | stack=0xa4004000-0xa4006000 stackSize=1012KB
  | held mutexes=
  native: #00 pc 0003ac04  /system/lib/libc.so (__ioctl+8)
  native: #01 pc 00051775  /system/lib/libc.so (ioctl+14)
  native: #02 pc 0001f39b  /system/lib/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+138)
  native: #03 pc 0001f88b  /system/lib/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+6)
  native: #04 pc 0001f8ed  /system/lib/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+48)
  native: #05 pc 00023a5b  /system/lib/libbinder.so (???)
  native: #06 pc 000104d5  /system/lib/libutils.so (android::Thread::_threadLoop(void*)+112)
  native: #07 pc 0005df4d  /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+72)
  native: #08 pc 00010045  /system/lib/libutils.so (???)
  native: #09 pc 000162e3  /system/lib/libc.so (__pthread_start(void*)+30)
  native: #10 pc 000142d3  /system/lib/libc.so (__start_thread+6)
  (no managed stack frames)

"pool-1-thread-1" prio=5 tid=15 Waiting
  | group="main" sCount=1 dsCount=0 obj=0x12c07440 self=0xac87c400
  | sysTid=15785 nice=0 cgrp=apps sched=0/0 handle=0xac3b2d00
  | state=S schedstat=( 846302 2156146 3 ) utm=0 stm=0 core=3 HZ=100
  | stack=0xa35e1000-0xa35e3000 stackSize=1036KB
  | held mutexes=
  at java.lang.Object.wait!(Native method)
  - waiting on <0x2f7a0a5e> (a java.lang.Object)
  at java.lang.Thread.parkFor(Thread.java:1220)
  - locked <0x2f7a0a5e> (a java.lang.Object)
  at sun.misc.Unsafe.park(Unsafe.java:299)
  at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2016)
  at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410)
  at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
  at java.lang.Thread.run(Thread.java:818)

"ActionsThreadPool-Thread" prio=4 tid=17 Waiting
  | group="main" sCount=1 dsCount=0 obj=0x12c07500 self=0xac3a2800
  | sysTid=15787 nice=0 cgrp=apps sched=0/0 handle=0xac3b3200
  | state=S schedstat=( 295066775 148488168 375 ) utm=25 stm=4 core=1 HZ=100
  | stack=0xa2ffe000-0xa3000000 stackSize=1036KB
  | held mutexes=
  at java.lang.Object.wait!(Native method)
  - waiting on <0x08d33e3f> (a java.lang.Object)
  at java.lang.Thread.parkFor(Thread.java:1220)
  - locked <0x08d33e3f> (a java.lang.Object)
  at sun.misc.Unsafe.park(Unsafe.java:299)
  at java.util.concurrent.locks.LockSupport.park(LockSupport.java:157)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2016)
  at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410)
  at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1035)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1097)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
  at java.lang.Thread.run(Thread.java:818)

----- end 15756 -----

该应用程序同时从相机捕获视频和从套接字(TCP或蓝牙)捕获音频流。当我开始捕获时,ANR出现了。

接收音频数据的服务代码如下: http://pastebin.com/HRJDQwfe


1
更新了,添加了源代码。 - Autocrab
一次只能有一个连接。这就是为什么如果会话已连接,套接字将被关闭。这是Wi-Fi P2P连接。但即使我删除此代码并通过蓝牙连接,ANR仍然显示。 - Autocrab
我遇到了同样的问题,请更新你的pastebin链接。 - Ebrahim Karimi
1个回答

0
尝试使用JConsole -> Threads(选项卡)-> Detect deadlock(左下角的按钮)。侧边的线程列表也可能是一种更简单的方法来检测可能发生冲突的线程。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接