使用堆栈跟踪解决错误

时间:2011-09-24 16:07:12

标签: java android stack-trace

我收到错误,其堆栈跟踪未显示错误所在的类(&行号)中的位置。 有没有其他方法可以找到导致此错误的代码?

我理解错误本身......但是我的代码中有几个地方可能会导致这种情况而且我无法重现它...(从用户报告中获取了堆栈跟踪)。

这是堆栈跟踪:

android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@462e1370 is not valid; is your activity running?
at android.view.ViewRoot.setView(ViewRoot.java:509)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
at android.view.Window$LocalWindowManager.addView(Window.java:424)
at android.app.Dialog.show(Dialog.java:241)
at android.app.AlertDialog$Builder.show(AlertDialog.java:802)
at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:566)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:144)
at android.app.ActivityThread.main(ActivityThread.java:4937)
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:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)

谢谢!

2 个答案:

答案 0 :(得分:4)

当用户暂停或杀死应用时,您可能正在尝试显示对话框。检查所有alertDialogs以及如何显示这些。确保您的活动正在运行。例如,您可以使用isFinishing

答案 1 :(得分:0)

评论现在是所要求的答案:

我认为异常来自不同的线程。这似乎是Android的事件线程,而您在工作线程中执行代码导致代码在事件线程中执行。像slayton在他的评论中建议添加一些评论。但是,也尝试注释掉部分代码,看看哪个行导致了该异常。