【发布时间】:2017-11-23 22:17:08
【问题描述】:
我收到了关于 badtokenexception 的报告,尽管我尝试了任何方法都无法重现它,而且我不清楚它是如何发生的。
BadTokenException (@android.view.ViewRootImpl:setView:575) 通过 (@android.view.WindowManagerGlobal:addView:272) 完整跟踪:android.view.WindowManager$BadTokenException:无法添加窗口 - 令牌 android.os。 BinderProxy@e5346b6 无效;您的活动正在运行吗?在 android.view.ViewRootImpl.setView(ViewRootImpl.java:575) 在 android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:272) 在 android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) 在 android.app。 Dialog.show(Dialog.java:306) at android.support.v4.app.DialogFragment.onStart(SourceFile:416) at android.support.v4.app.Fragment.performStart(SourceFile:2369) at android.support.v4 .app.FragmentManagerImpl.moveToState(SourceFile:1458) 在 android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(SourceFile:1740) 在 android.support.v4.app.FragmentManagerImpl.moveToState(SourceFile:1809) 在 android.support。 v4.app.FragmentManagerImpl.dispatchStateChange(SourceFile:3217) 在 android.support.v4.app.FragmentManagerImpl.dispatchStart(SourceFile:3176) 在 android.support.v4.app.FragmentController.dispatchStart(SourceFile:203) 在 android.support .v4.app.FragmentActivity.onStart(SourceFile:562) 位于 android.a 的 android.support.v7.app.AppCompatActivity.onStart(SourceFile:177) pp.Instrumentation.callActivityOnStart(Instrumentation.java:1220) 在 android.app.Activity.performStart(Activity.java:5993) 在 android.app.Activity.performRestart(Activity.java:6050) 在 android.app.ActivityThread.handleWindowVisibility (ActivityThread.java:3453) 在 android.app.ActivityThread.access$1200(ActivityThread.java:148) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1317) 在 android.os.Handler.dispatchMessage(Handler .java:102) 在 android.os.Looper.loop(Looper.java:135) 在 android.app.ActivityThread.main(ActivityThread.java:5272) 在 java.lang.reflect.Method.invoke(Native Method) 在java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:909) 在 com.android.internal.os.ZygoteInit.main( ZygoteInit.java:704)
我有一个在启动时显示对话框的活动,通常它可以工作,分析时只报告了几次崩溃。
public class DialogFragmentWrapperActivity extends AppCompatActivity {
/** Stores an instance of the dialog to be shown. */
private CustomDialogFragment mCustomDialog = null;
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String fragmentId = "DialogFragmentWrapperActivity" + String.valueOf(this.hashCode());
if ((savedInstanceState != null) && savedInstanceState.containsKey("id")) {
fragmentId = savedInstanceState.getString("id");
}
mCustomDialog = CustomDialogFragment.newInstance(fragmentId);
final FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.add(mCustomDialog, fragmentId);
ft.commit();
}
你有什么提示 badtokenexception 是如何发生的吗?如果在调用 ft.commit() 之前关闭活动,我唯一能想到的,所以我之前尝试调用 finish() 但这并没有改变任何东西。有什么想法吗?
【问题讨论】:
标签: android