我开发了一个应用程序,其中我有4个选项卡A,B,C,D。每个选项卡都包含一个活动。在第四个选项卡D中,我添加了一个ActivityGroup,其中有3个活动X,Y,Z。在第四个Tab中,我添加了活动组,我得到了StackOverflow错误。请帮我解决这个错误。如何解决android中的BadTokenException错误?
这是我的堆栈跟踪: -
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): android.view.WindowManager$BadTokenException: Unable to add window -- token [email protected] is not valid; is your activity running?
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.ViewRoot.setView(ViewRoot.java:468)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.Window$LocalWindowManager.addView(Window.java:424)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.app.Dialog.show(Dialog.java:239)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.app.AlertDialog$Builder.show(AlertDialog.java:802)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.widget.Spinner.performClick(Spinner.java:257)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.View.onTouchEvent(View.java:4179)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.View.dispatchTouchEvent(View.java:3709)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:852)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
06-30 18:22:26.521: ERROR/AndroidRuntime(1293): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow
我这是在构建TABS -------
Resources res = getResources();
TabHost tabHost = getTabHost(); // The activity TabHost
TabHost.TabSpec spec; // Reusable TabSpec for each tabO
Intent intent; // Reusable Intent for each tab
// Create an Intent to launch an Activity for the tab (to be reused)
intent = new Intent().setClass(this,FirstActivity.class);
spec = tabHost.newTabSpec("tab_First");
spec.setIndicator("First",res.getDrawable(R.drawable.ic_tab));
spec.setContent(intent);
tabHost.addTab(spec);
// 2nd tab
intent = new Intent().setClass(this,SecondActivity.class);
spec = tabHost.newTabSpec("tab_Second");
spec.setIndicator("Second",res.getDrawable(R.drawable.ic_tab));
spec.setContent(intent);
tabHost.addTab(spec);
//3rd Tab
intent = new Intent().setClass(this,ThirdActivity.class);
spec = tabHost.newTabSpec("tab_Third");
spec.setIndicator("Third",res.getDrawable(R.drawable.ic_tab));
spec.setContent(intent);
tabHost.addTab(spec);
// 4th tab
intent = new Intent().setClass(this,FourthActivity.class);
spec = tabHost.newTabSpec("tab_Fourth");
spec.setIndicator("Fourth",res.getDrawable(R.drawable.ic_create));
spec.setContent(intent);
tabHost.addTab(spec);
tabHost.setCurrentTab(0);
仅提供logcat的消息不会是足够的信息来回答你的问题使用任何其中的活动。显示选项卡的相关代码以及如何构建所有选项卡。 – binnyb