自定义view的ANR问题

ahaso 2013-04-25 01:46:27
下面是traces.txt里的log:

"main" prio=5 tid=1 WAIT
| group="main" sCount=1 dsCount=0 obj=0x40a59460 self=0x1180828
| sysTid=24868 nice=0 sched=0/0 cgrp=default handle=1074603144
| schedstat=( 0 0 0 ) utm=771 stm=162 core=0
at java.lang.Object.wait(Native Method)
- waiting on <0x40a59530> (a java.lang.VMThread) held by tid=1 (main)
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.acquireQueued(AbstractQueuedSynchronizer.java:846)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1176)
at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:185)
at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:261)
at android.view.SurfaceView.updateWindow(SurfaceView.java:462)
at android.view.SurfaceView.onWindowVisibilityChanged(SurfaceView.java:227)
at android.view.View.dispatchDetachedFromWindow(View.java:9814)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2266)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2266)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2266)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2266)
at android.view.ViewRootImpl.dispatchDetachedFromWindow(ViewRootImpl.java:2248)
at android.view.ViewRootImpl.doDie(ViewRootImpl.java:3707)
at android.view.ViewRootImpl.die(ViewRootImpl.java:3695)
at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:342)
at android.view.WindowManagerImpl$CompatModeWrapper.removeViewImmediate(WindowManagerImpl.java:161)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3148)
at android.app.ActivityThread.access$1200(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1180)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
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)


求指点一下。。。
现象是重复开启关闭多次此页面,出现anr
...全文
315 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq814170176 2014-08-06
  • 打赏
  • 举报
回复
你好,怎么解决的?
云水-禅心 2013-07-11
  • 打赏
  • 举报
回复
我也碰见了,搜不出关键字来
ahaso 2013-04-27
  • 打赏
  • 举报
回复
自顶一下,困扰了2周的问题了。
ahaso 2013-04-27
  • 打赏
  • 举报
回复
引用 6 楼 ConnectionUtils 的回复:
[quote=引用 5 楼 ahaso 的回复:] 引用 1 楼 ConnectionUtils 的回复: 引用 楼主 ahaso 的回复:下面是traces.txt里的log: "main" prio=5 tid=1 WAIT | group="main" sCount=1 dsCount=0 obj=0x40a59460 self=0x1180828 | sysTid=24868 nice=0 sched=0/0 cgrp=……
把执行出现anr的代码贴出来下,要不然光从日志上分析了 也给不鸟你具体的解决方案[/quote] 我不贴那个代码是因为真看不出什么地方有问题,我贴出来。 两个oncreat的代码: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.paint); Calendar ca = Calendar.getInstance(); mGetTime = ca.getTimeInMillis(); paletteView = (PaletteView)findViewById(R.id.backview); bluepenButton = (Button)findViewById(R.id.bluepen); eraserButton = (Button)findViewById(R.id.eraserButton); submitButton = (Button)findViewById(R.id.submitButton); saveButton = (Button)findViewById(R.id.saveButton); bluepenButton.setOnClickListener(this); eraserButton.setOnClickListener(this); submitButton.setOnClickListener(this); saveButton.setOnClickListener(this); Bundle bundle = getIntent().getExtras(); token = bundle.getString("token"); readPath = bundle.getString("parameter"); subject = bundle.getString("subject"); mHttpPort = bundle.getInt("httpport"); Intent intent = new Intent(); intent.setAction("close.bynextQuiz"); sendBroadcast(intent); loadDialog = new ProgressDialog(this); saveDialog = new ProgressDialog(this); overtimeDialog = new AlertDialog.Builder(this).create(); overtimeDialog.setCancelable(false); loadDialog.setCancelable(false); saveDialog.setCancelable(false); msg = new Message(); resetActivity(); } public void resetActivity(){ Log.e("eric", "subject:" + subject); if( subject == null || subject.equals("") ){ subject = "Miscellaneous"; } loadDialog.show(); loadDialog.setContentView(R.layout.loadpaintdialog); bluepenButton.setSelected(true); eraserButton.setSelected(false); thread = new Mythread(); thread.start(); } public PaletteView(Context context, AttributeSet arr) { super(context, arr); mPaint = new Paint(); actionList = new ArrayList<Action>(); mSurfaceHolder = this.getHolder(); mSurfaceHolder.addCallback(this); mLoop = true; Log.e("eric", "palettview creat") ; }
csdn_2013 2013-04-25
  • 打赏
  • 举报
回复
引用 5 楼 ahaso 的回复:
引用 1 楼 ConnectionUtils 的回复: 引用 楼主 ahaso 的回复:下面是traces.txt里的log: "main" prio=5 tid=1 WAIT | group="main" sCount=1 dsCount=0 obj=0x40a59460 self=0x1180828 | sysTid=24868 nice=0 sched=0/0 cgrp=……
把执行出现anr的代码贴出来下,要不然光从日志上分析了 也给不鸟你具体的解决方案
ahaso 2013-04-25
  • 打赏
  • 举报
回复
引用 1 楼 ConnectionUtils 的回复:
引用 楼主 ahaso 的回复:下面是traces.txt里的log: "main" prio=5 tid=1 WAIT | group="main" sCount=1 dsCount=0 obj=0x40a59460 self=0x1180828 | sysTid=24868 nice=0 sched=0/0 cgrp=default handle=1……
文件里的anr那部分在3楼
ahaso 2013-04-25
  • 打赏
  • 举报
回复
引用 2 楼 wenwei19861106 的回复:
断点调试 看看那部阻塞的UI
没给我机会啊,页面启动就anr了。。。
ahaso 2013-04-25
  • 打赏
  • 举报
回复
"InputDispatcher" prio=10 tid=27 TIMED_WAIT | group="main" sCount=1 dsCount=0 obj=0x411a9ae8 self=0x13cbf18 | sysTid=209 nice=-8 sched=0/0 cgrp=default handle=20328264 | schedstat=( 0 0 0 ) utm=671 stm=891 core=0 at java.lang.Object.wait(Native Method) - waiting on <0x415c7730> (a com.android.server.am.ActivityManagerService$4) at java.lang.Object.wait(Object.java:401) at com.android.server.am.ActivityManagerService.dumpStackTraces(ActivityManagerService.java:2932) at com.android.server.am.ActivityManagerService.dumpStackTraces(ActivityManagerService.java:2910) at com.android.server.am.ActivityManagerService.appNotResponding(ActivityManagerService.java:3147) at com.android.server.am.ActivityRecord.keyDispatchingTimedOut(ActivityRecord.java:757) at com.android.server.am.ActivityRecord$Token.keyDispatchingTimedOut(ActivityRecord.java:243) at com.android.server.wm.InputMonitor.notifyANR(InputMonitor.java:108) at com.android.server.wm.InputManager$Callbacks.notifyANR(InputManager.java:549) at dalvik.system.NativeStart.run(Native Method)
引用 楼主 ahaso 的回复:
下面是traces.txt里的log: "main" prio=5 tid=1 WAIT | group="main" sCount=1 dsCount=0 obj=0x40a59460 self=0x1180828 | sysTid=24868 nice=0 sched=0/0 cgrp=default handle=1074603144 | s……
南瓜饼 2013-04-25
  • 打赏
  • 举报
回复
断点调试 看看那部阻塞的UI
csdn_2013 2013-04-25
  • 打赏
  • 举报
回复
引用 楼主 ahaso 的回复:
下面是traces.txt里的log: "main" prio=5 tid=1 WAIT | group="main" sCount=1 dsCount=0 obj=0x40a59460 self=0x1180828 | sysTid=24868 nice=0 sched=0/0 cgrp=default handle=1074603144 | schedstat=( 0 ……
LZ是不是没有贴出关键部分的日志啊, 出现anr的 traces.txt中 直接搜索anr关键字 将anr 关键字下面的日志贴出来看看哈

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧