如何打开/data/anr/anr traces.txtt

如何分析解决Android ANR_百度知道
如何分析解决Android ANR
提问者采纳
1:UI线程尽量做跟UI相关工作2:耗工作(比数据库操作I/O连接网络或者别能阻碍UI线程操作)放入单独线程处理3:尽量用Handler处理UIthread别thread间交互 何调查并解决ANR1:首先析log2: trace.txt文件查看调用stack.3: 看代码4:仔细查看ANR(iowait?block?memoryleak?)析ANR先看LOG:04-01 13:12:11.572 I/InputDispatcher( 220): Application is not responding:Window{2b263310com.android.email/com.android.email.activity.SplitScreenActivitypaused=false}.
5009.8ms since event, 5009.5ms since waitstarted04-.572 I/WindowManager( 220): Input event dispatching timedout sending tocom.android.email/com.android.email.activity.SplitScreenActivity04-01 13:12:14.123 I/Process(
220): Sending signal. PID: 21404 SIG: 3---发ANR间trace.txt间04-01 13:12:14.123 I/dalvikvm(21404):threadid=4: reacting to signal 3 ……04-.872 E/ActivityManager(
220): ANR in com.android.email(com.android.email/.activity.SplitScreenActivity)04-.872 E/ActivityManager(
220): Reason:keyDispatchingTimedOut04-.872 E/ActivityManager(
220): Load: 8.68 / 8.37 / 8.5304-.872 E/ActivityManager(
220): CPUusage from 4361ms to 699ms ago ----CPUANR发前使用情况 04-.872 E/ActivityManager(
5.5%21404/com.android.email: 1.3% user + 4.1% kernel / faults: 10 minor04-.872 E/ActivityManager(
4.3%220/system_server: 2.7% user + 1.5% kernel / faults: 11 minor 2 major04-.872 E/ActivityManager(
0.9%52/spi_qsd.0: 0% user + 0.9% kernel04-.872 E/ActivityManager(
0.5%65/irq/170-cyttsp-: 0% user + 0.5% kernel04-.872 E/ActivityManager(
0.5%296/com.android.systemui: 0.5% user + 0% kernel04-.872 E/ActivityManager(
220): 100%TOTAL: 4.8% user + 7.6% kernel + 87% iowait04-.872 E/ActivityManager(
220): CPUusage from 3697ms to 4223ms later:-- ANRCPU使用量04-.872 E/ActivityManager(
25%21404/com.android.email: 25% user + 0% kernel / faults: 191 minor04-.872 E/ActivityManager(
16% 21603/__eas(par.hakan: 16% user + 0% kernel04-.872 E/ActivityManager(
7.2% 21406/GC: 7.2% user + 0% kernel04-.872 E/ActivityManager(
1.8% 21409/Compiler: 1.8% user + 0% kernel04-.872 E/ActivityManager(
5.5%220/system_server: 0% user + 5.5% kernel / faults: 1 minor04-.872 E/ActivityManager(
5.5% 263/InputDispatcher: 0% user + 5.5% kernel04-.872 E/ActivityManager(
220): 32%TOTAL: 28% user + 3.7% kernel LOG看ANR类型CPU使用情况CPU使用量接近100%说明前设备忙能CPU饥饿导致ANRCPU使用量少说明主线程BLOCKIOwait高说明ANR能主线程进行I/O操作造除看LOG解决ANR需要trace.txt文件何获取呢用命令获取$chmod 777 /data/anr$rm /data/anr/traces.txt$ps$kill -3 PIDadbpull data/anr/traces.txt ./mytraces.txttrace.txt文件看信息:-----pid 21404 at
13:12:14 -----
Cmdline: com.android.emailDALVIK THREADS:(mutexes: tll=0tsl=0 tscl=0 ghl=0 hwl=0 hwll=0)&main& prio=5 tid=1NATIVE
| group=&main& sCount=1 dsCount=0obj=0x2aad2248 self=0xcf70
| sysTid=21404 nice=0 sched=0/0cgrp=[fopen-error:2] handle=
atandroid.os.MessageQueue.nativePollOnce(Native Method)
atandroid.os.MessageQueue.next(MessageQueue.java:119)
atandroid.os.Looper.loop(Looper.java:110) at android.app.ActivityThread.main(ActivityThread.java:3688) at java.lang.reflect.Method.invokeNative(Native Method)
atjava.lang.reflect.Method.invoke(Method.java:507)
atcom.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624) at dalvik.system.NativeStart.main(Native Method)说明主线程等待条消息进入消息队列
来自团队:
其他类似问题
为您推荐:
android的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Android 系统稳定性
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
Android 系统稳定性
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口Stack Overflow is a community of 4.7 million programmers, just like you, helping each other. J it only takes a minute:
I've got an ANR error on my android app.
It's trace is below
"main" and "Thread-20153" are main problem of ANR?
DALVIK THREADS:
(mutexes: tll=0 tsl=0 tscl=0 ghl=0)
"main" prio=5 tid=1 SUSPENDED
| group="main" sCount=2 dsCount=1 obj=0x40aee490 self=0x1fbad70
| sysTid=3805 nice=0 sched=0/0 cgrp=default handle=
| schedstat=(
791048 ) utm=33581 stm=4270 core=0
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:~2812)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2851)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1287)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:4945)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
"Thread-20153" prio=5 tid=22 TIMED_WAIT
| group="main" sCount=1 dsCount=0 obj=0x self=0x3018ea0
| sysTid=7466 nice=0 sched=0/0 cgrp=default handle=
| schedstat=( 86523 62 ) utm=2 stm=1 core=0
at java.lang.VMThread.sleep(Native Method)
at java.lang.Thread.sleep(Thread.java:1047)
at java.lang.Thread.sleep(Thread.java:1029)
at com.mocoplex.adlib.AdlibManager$b.run(AdlibManager.java:1068)
"Timer-3" prio=5 tid=18 TIMED_WAIT
| group="main" sCount=1 dsCount=0 obj=0x self=0x2984f48
| sysTid=5953 nice=0 sched=0/0 cgrp=default handle=
| schedstat=(
) utm=4 stm=0 core=0
at java.lang.Object.wait(Native Method)
- waiting on &0x& (a java.util.Timer$TimerImpl)
at java.lang.Object.wait(Object.java:401)
at java.util.Timer$TimerImpl.run(Timer.java:238)
"Timer-2" prio=5 tid=20 TIMED_WAIT
| group="main" sCount=1 dsCount=0 obj=0x self=0x2a53738
| sysTid=5861 nice=0 sched=0/0 cgrp=default handle=
| schedstat=(
) utm=4 stm=0 core=0
at java.lang.Object.wait(Native Method)
- waiting on &0x& (a java.util.Timer$TimerImpl)
at java.lang.Object.wait(Object.java:401)
at java.util.Timer$TimerImpl.run(Timer.java:238)
"Binder Thread #4" prio=5 tid=16 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x410d7a90 self=0x2877ef8
| sysTid=4496 nice=0 sched=0/0 cgrp=default handle=
| schedstat=( 1 ) utm=30 stm=25 core=0
at dalvik.system.NativeStart.run(Native Method)
"Binder Thread #3" prio=5 tid=21 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x40e9bd30 self=0x296a800
| sysTid=3971 nice=0 sched=0/0 cgrp=default handle=
| schedstat=( 7 ) utm=47 stm=28 core=0
at dalvik.system.NativeStart.run(Native Method)
"Timer-1" prio=5 tid=12 TIMED_WAIT
| group="main" sCount=1 dsCount=0 obj=0x40da4778 self=0x2817d28
| sysTid=3955 nice=0 sched=0/0 cgrp=default handle=
| schedstat=(
) utm=3 stm=4 core=0
at java.lang.Object.wait(Native Method)
- waiting on &0x40da4778& (a java.util.Timer$TimerImpl)
at java.lang.Object.wait(Object.java:401)
at java.util.Timer$TimerImpl.run(Timer.java:238)
"Thread-19213" prio=5 tid=14 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x40f47bc0 self=0x28397d8
| sysTid=3894 nice=0 sched=0/0 cgrp=default handle=
| schedstat=(
16030 ) utm=317 stm=341 core=0
at dalvik.system.NativeStart.run(Native Method)
"AsyncTask #1" prio=5 tid=19 WAIT
| group="main" sCount=1 dsCount=0 obj=0x40ec6b60 self=0x2799b10
| sysTid=3886 nice=10 sched=0/0 cgrp=default handle=
| schedstat=(
) utm=5 stm=3 core=1
at java.lang.Object.wait(Native Method)
- waiting on &0x40ec70f8& (a java.lang.VMThread) held by tid=19 (AsyncTask #1)
at java.lang.Thread.parkFor(Thread.java:1250)
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:864)
"GAThread" prio=5 tid=17 WAIT
| group="main" sCount=1 dsCount=0 obj=0x40e14cd8 self=0x265ea78
| sysTid=3849 nice=0 sched=0/0 cgrp=default handle=
| schedstat=(
420613 ) utm=8608 stm=1202 core=0
at java.lang.Object.wait(Native Method)
- waiting on &0x40e14f48& (a java.lang.VMThread) held by tid=17 (GAThread)
at java.lang.Thread.parkFor(Thread.java:1250)
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 com.google.analytics.tracking.android.GAThread.run(GAThread.java:518)
"Timer-0" prio=5 tid=15 TIMED_WAIT
| group="main" sCount=1 dsCount=0 obj=0x40e0b258 self=0x2644908
| sysTid=3847 nice=0 sched=0/0 cgrp=default handle=
| schedstat=( 26859 49 ) utm=0 stm=0 core=0
at java.lang.Object.wait(Native Method)
- waiting on &0x40e0b258& (a java.util.Timer$TimerImpl)
at java.lang.Object.wait(Object.java:401)
at java.util.Timer$TimerImpl.run(Timer.java:238)
"CookieSyncManager" prio=5 tid=13 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x40dd51d8 self=0x2205750
| sysTid=3839 nice=10 sched=0/0 cgrp=default handle=
| schedstat=( 22953 21 ) utm=0 stm=0 core=0
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:118)
at android.os.Looper.loop(Looper.java:124)
at android.webkit.WebSyncManager.run(WebSyncManager.java:90)
at android.webkit.CookieSyncManager.run(CookieSyncManager.java:61)
at java.lang.Thread.run(Thread.java:864)
"WebViewCoreThread" prio=5 tid=11 SUSPENDED
| group="main" sCount=1 dsCount=0 obj=0x40dd1000 self=0x21d3268
| sysTid=3837 nice=0 sched=0/0 cgrp=default handle=
| schedstat=(
209209 ) utm=9772 stm=1105 core=0
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:118)
at android.os.Looper.loop(Looper.java:124)
at android.webkit.WebViewCore$WebCoreThread.run(WebViewCore.java:751)
at java.lang.Thread.run(Thread.java:864)
"Binder Thread #2" prio=5 tid=10 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x40dab048 self=0x21b4f78
| sysTid=3817 nice=0 sched=0/0 cgrp=default handle=
| schedstat=( 2 ) utm=62 stm=13 core=0
at dalvik.system.NativeStart.run(Native Method)
"Binder Thread #1" prio=5 tid=9 NATIVE
| group="main" sCount=1 dsCount=0 obj=0x40daa018 self=0x220b6c0
| sysTid=3816 nice=0 sched=0/0 cgrp=default handle=
| schedstat=( 4 ) utm=56 stm=20 core=0
at dalvik.system.NativeStart.run(Native Method)
"FinalizerWatchdogDaemon" daemon prio=5 tid=8 WAIT
| group="main" sCount=1 dsCount=0 obj=0x40da5910 self=0x21f8778
| sysTid=3815 nice=0 sched=0/0 cgrp=default handle=
| schedstat=(
) utm=1 stm=0 core=0
at java.lang.Object.wait(Native Method)
- waiting on &0x40af5ee8& (a java.lang.Daemons$FinalizerWatchdogDaemon)
at java.lang.Object.wait(Object.java:364)
at java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:218)
at java.lang.Thread.run(Thread.java:864)
"FinalizerDaemon" daemon prio=5 tid=7 WAIT
| group="main" sCount=1 dsCount=0 obj=0x40da57b8 self=0x21a4a20
| sysTid=3814 nice=0 sched=0/0 cgrp=default handle=
| schedstat=(
35050 ) utm=463 stm=121 core=0
at java.lang.Object.wait(Native Method)
- waiting on &0x40ae45e8& (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:173)
at java.lang.Thread.run(Thread.java:864)
"ReferenceQueueDaemon" daemon prio=5 tid=6 WAIT
| group="main" sCount=1 dsCount=0 obj=0x40da5650 self=0x21ce2e0
| sysTid=3813 nice=0 sched=0/0 cgrp=default handle=
| schedstat=(
6973 ) utm=98 stm=17 core=0
at java.lang.Object.wait(Native Method)
- waiting on &0x40ae4510&
at java.lang.Object.wait(Object.java:364)
at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:133)
at java.lang.Thread.run(Thread.java:864)
"Compiler" daemon prio=5 tid=5 VMWAIT
| group="system" sCount=1 dsCount=0 obj=0x40da5560 self=0x21ee180
| sysTid=3812 nice=0 sched=0/0 cgrp=default handle=
| schedstat=( 4346 7 ) utm=0 stm=0 core=0
at dalvik.system.NativeStart.run(Native Method)
"JDWP" daemon prio=5 tid=4 VMWAIT
| group="system" sCount=1 dsCount=0 obj=0x40da5478 self=0x21f1988
| sysTid=3811 nice=0 sched=0/0 cgrp=default handle=
| schedstat=( 1 ) utm=24 stm=44 core=0
at dalvik.system.NativeStart.run(Native Method)
"Signal Catcher" daemon prio=5 tid=3 RUNNABLE
| group="system" sCount=0 dsCount=0 obj=0x40da5380 self=0x220ebd0
| sysTid=3809 nice=0 sched=0/0 cgrp=default handle=
| schedstat=( 01465 8 ) utm=0 stm=0 core=0
at dalvik.system.NativeStart.run(Native Method)
"GC" daemon prio=5 tid=2 VMWAIT
| group="system" sCount=1 dsCount=0 obj=0x40da52a0 self=0x20801f0
| sysTid=3807 nice=0 sched=0/0 cgrp=default handle=
| schedstat=(
2552 ) utm=254 stm=12 core=0
at dalvik.system.NativeStart.run(Native Method)
----- end 3805 -----
But I'don't know where is a problem code.
How to interpret this?
It's too long trace, and question is too naive. You don't have to explain whole error, just please advise how to interpret the subjects.
6,72463552
So far, it doesn't look like it has a problem. As we can observe here, The main thread is suspended and so is one more thread called WebViewCoreThread, apart from these 2 all others seem to be pretty alright either doing a classic wait or a timed wait or just running.
The 2 possible reasons why the ANR could have occurred here might be because either of the 2 threads is suspended indefinitely and the android (system) would have thought they have died , after waiting for some time out, say few seconds, thus throwing an ANR.
You might want to check if there are any break points in either of those threads or either of those threads are doing some heavy op involving instantiation of objects leading to gc which also might cause the thread to enter suspended mode.
Also check the logs for any sign on watchdog killing any of the system process.. might help fig this out!
Your Answer
Sign up or
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Post as a guest
By posting your answer, you agree to the
Not the answer you're looking for?
Browse other questions tagged
Upcoming Events
Stack Overflow works best with JavaScript enabled通过ANR来查看死锁
死锁通常很难查找。但是在我们可以ANR来得到traces.txt。在traces.txt中可以查看那些线程在wait,当然死锁的线程也在其中。这样对查找死锁大大提供了方便。
注意:方式ANR后,在手机中就会生成如下文件data\anr\traces.txt
下面直接给出实例。
DeadLockTraceActivity.java文件
package com.gameloft.
import android.app.A
import android.os.B
import android.os.H
public class DeadLockTraceActivity extends Activity {
&&& public void onCreate(Bundle savedInstanceState) {
&&&&&&& super.onCreate(savedInstanceState);
&&&&&&& setContentView(R.layout.deadlock_trace);
String tag=&robin&;
& public void onResume()
super.onResume();
new ThreadDeadLockExample().start();
Handler handler=new Handler();
Runnable run=new Runnable(){public void run(){forceWait();}};
handler.post(run);&&&&&&
&&& synchronized void forceWait()
wait(60000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
ThreadDeadLockExample.java文件
package com.gameloft.
import java.util.concurrent.locks.ReentrantL
import android.util.L
public class ThreadDeadLockExample{
&&& private final ReentrantLock lockA = new ReentrantLock(true);
&&& private final ReentrantLock lockB = new ReentrantLock(true);
&&& String tag=&robin&;
&&& void start()
Log.i(tag, &ThreadDeadLockExample start&);
new ThreadA(&ThreadA&).start();
new ThreadB(&ThreadB&).start();
&&& class ThreadA extends Thread
ThreadA(String name)
super(name);
public void run()
Log.i(tag, &try to lock A&+& in ThreadA&);
lockA.lock();
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.i(tag, &lock A successful&+& in ThreadA&);
Log.i(tag, &try to lock B&+& in ThreadA&);
lockB.lock();
Log.i(tag, &lock B successful&+& in ThreadA&);
lockB.unlock();
Log.i(tag, &unlock B&+& in ThreadA&);
lockA.unlock();
Log.i(tag, &unlock A&+& in ThreadA&);
&&& class ThreadB extends Thread
ThreadB(String name)
super(name);
public void run()
Log.i(tag, &try to lock B &+& in ThreadB&);
lockB.lock();
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.i(tag, &lock B successful&+& in ThreadB&);
Log.i(tag, &try to lock A&+& in ThreadB&);
lockA.lock();
Log.i(tag, &lock A successful&+& in ThreadB&);
lockA.unlock();
Log.i(tag, &unlock A&+& in ThreadB&);
lockB.unlock();
Log.i(tag, &unlock B&+& in ThreadB&);
traces.txt 文件摘要
DALVIK THREADS:
&main& prio=5 tid=1 TIMED_WAIT
& | group=&main& sCount=1 dsCount=0 s=N obj=0x self=0xcdf0
& | sysTid=1732 nice=0 sched=0/0 cgrp=unknown handle=-
& at java.lang.Object.wait(Native Method)
& - waiting on &0x4a5ba4b0& (a com.gameloft.robin.DeadLockTraceActivity)
& at java.lang.Object.wait(Object.java:326)
& at com.gameloft.robin.DeadLockTraceActivity.forceWait(DeadLockTraceActivity.java:24)
& at com.gameloft.robin.DeadLockTraceActivity$1.run(DeadLockTraceActivity.java:18)
& at android.os.Handler.handleCallback(Handler.java:587)
& at android.os.Handler.dispatchMessage(Handler.java:92)
& at android.os.Looper.loop(Looper.java:123)
& at android.app.ActivityThread.main(ActivityThread.java:4633)
& at java.lang.reflect.Method.invokeNative(Native Method)
& at java.lang.reflect.Method.invoke(Method.java:521)
& at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
& at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
& at dalvik.system.NativeStart.main(Native Method)
&ThreadB& prio=5 tid=10 WAIT
& | group=&main& sCount=1 dsCount=0 s=N obj=0x4a5bf868 self=0x2174f8
& | sysTid=1741 nice=0 sched=0/0 cgrp=unknown handle=2192952
& at java.lang.Object.wait(Native Method)
& - waiting on &0x4a5bf980& (a java.lang.VMThread)
& at java.lang.Thread.parkFor(Thread.java:1535)
& at java.lang.LangAccessImpl.parkFor(LangAccessImpl.java:48)
& at sun.misc.Unsafe.park(Unsafe.java:317)
& at java.util.concurrent.locks.LockSupport.park(LockSupport.java:131)
& at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:790)
& at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:823)
& at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1153)
& at java.util.concurrent.locks.ReentrantLock$FairSync.lock(ReentrantLock.java:200)
& at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:261)
& at com.gameloft.robin.ThreadDeadLockExample$ThreadB.run(ThreadDeadLockExample.java:61)
&ThreadA& prio=5 tid=9 WAIT
& | group=&main& sCount=1 dsCount=0 s=N obj=0x4a5bf438 self=0x216858
& | sysTid=1740 nice=0 sched=0/0 cgrp=unknown handle=2189720
& at java.lang.Object.wait(Native Method)
& - waiting on &0x4a5bf590& (a java.lang.VMThread)
& at java.lang.Thread.parkFor(Thread.java:1535)
& at java.lang.LangAccessImpl.parkFor(LangAccessImpl.java:48)
& at sun.misc.Unsafe.park(Unsafe.java:317)
& at java.util.concurrent.locks.LockSupport.park(LockSupport.java:131)
& at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:790)
& at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:823)
& at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1153)
& at java.util.concurrent.locks.ReentrantLock$FairSync.lock(ReentrantLock.java:200)
& at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:261)
at com.gameloft.robin.ThreadDeadLockExample$ThreadA.run(ThreadDeadLockExample.java:35)
摘自 robin的专栏}

我要回帖

更多关于 data anr 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信