我刚刚将我的第一个应用程序发布到Google Marketplace并收到了应用程序崩溃的信息 - 我有两个堆栈跟踪,其中一个例如:
android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@45681318 is not valid; is your activity running?
at android.view.ViewRoot.setView(ViewRoot.java:468)
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:239)
at abc.de.f.MyTask.onPreExecute(MyTask.java:52)
Run Code Online (Sandbox Code Playgroud)
在MyTask中只有一种方法可以获得onPreExecute()方法 - 并且它不会在模拟器或我的物理设备上崩溃.但它似乎有时会"在野外"崩溃.
你的第一步是什么才能找到原因?
非常感谢,
斯特凡
编辑:
@Override
protected void onPreExecute() {
this.dialog.setMessage(((Activity) listener).getString(R.string.daten_werden_geladen));
this.dialog.show();
}
Run Code Online (Sandbox Code Playgroud)
this.dialog.setMessage工作,但show()不... :(
看起来您正在使用已关闭的活动的上下文更新UI或从onPreExecute()显示对话框.我想你的任务实现中存在逻辑错误.在使用上下文更新UI之前或者您正在从活动中保存对视图的引用之前,U应检查活动是否正在运行.
编辑:尝试使用您的应用程序的上下文,而不是使用Activity的上下文来获取字符串资源.
this.dialog.setMessage(((Activity) listener).getApplicationContext().getString(R.string.daten_werden_geladen));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
464 次 |
| 最近记录: |