Java Android Tabhost非法状态异常

Java Android Tabhost非法状态异常,java,android,android-fragments,illegalstateexception,fragment-tab-host,Java,Android,Android Fragments,Illegalstateexception,Fragment Tab Host,我正在使用Android内置的Tabhost小部件,以下错误导致应用程序崩溃: Exception java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState android.support.v4.app.FragmentManagerImpl.checkStateLoss (FragmentManager.java:1842) android.support.v4.

我正在使用Android内置的Tabhost小部件,以下错误导致应用程序崩溃:

Exception java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
    android.support.v4.app.FragmentManagerImpl.checkStateLoss (FragmentManager.java:1842)
    android.support.v4.app.FragmentManagerImpl.enqueueAction (FragmentManager.java:1860)
    android.support.v4.app.BackStackRecord.commitInternal (BackStackRecord.java:650)
    android.support.v4.app.BackStackRecord.commit (BackStackRecord.java:609)
    android.support.v4.app.FragmentTabHost.onAttachedToWindow (FragmentTabHost.java:288)
    android.view.View.dispatchAttachedToWindow (View.java:12612)
我没有使用片段事务或任何应该使用.commit()的东西,所以我仍然想知道是什么导致了这种情况

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ButterKnife.bind(this);
    mFirebaseAnalytics = DomVio.getInstance().getFirebaseAnalytics();

    mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);

    ImageView urgencyTabView = (ImageView) getLayoutInflater().inflate(R.layout.tab_host_item, null);
    urgencyTabView.setImageResource(R.drawable.tab_urgency);
    mTabHost.addTab(mTabHost.newTabSpec("Urgency").setIndicator(urgencyTabView), UrgencyFragment.class, null);

    ImageView articlesTabView = (ImageView) getLayoutInflater().inflate(R.layout.tab_host_item, null);
    articlesTabView.setImageResource(R.drawable.tab_articles);
    mTabHost.addTab(mTabHost.newTabSpec("Articles").setIndicator(articlesTabView), LegalArticlesFragment.class, null);

    ImageView awarenessTabView = (ImageView) getLayoutInflater().inflate(R.layout.tab_host_item, null);
    awarenessTabView.setImageResource(R.drawable.tab_awareness);
    mTabHost.addTab(mTabHost.newTabSpec("Awareness").setIndicator(awarenessTabView), AwarenessArticlesFragment.class, null);

    ImageView expertsTabView = (ImageView) getLayoutInflater().inflate(R.layout.tab_host_item, null);
    expertsTabView.setImageResource(R.drawable.tab_experts);
    mTabHost.addTab(mTabHost.newTabSpec("Experts").setIndicator(expertsTabView), ExpertsTabsFragment.class, null);

    ImageView questionareTabView = (ImageView) getLayoutInflater().inflate(R.layout.tab_host_item, null);
    questionareTabView.setImageResource(R.drawable.tab_questionare);
    mTabHost.addTab(mTabHost.newTabSpec("Questionare").setIndicator(questionareTabView), QuestionareFragment.class, null);

    mTabHost.getTabWidget().setDividerDrawable(null);
    mTabHost.getTabWidget().getChildAt(0).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            UrgencyFragment fragment = (UrgencyFragment) getSupportFragmentManager().findFragmentByTag("Urgency");
            fragment.switchToMain();
            mTabHost.setCurrentTab(0);
        }
    });

    mTabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
        @Override
        public void onTabChanged(String tabId) {
            if (tabId != null) {
                Bundle bundle = new Bundle();
                bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, tabId + " " + "tab");
                mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);
            }
        }
    });

}

注释掉
ButterKnife
行。看看是不是这个引起的。我不知道
.bind
有什么作用,但可能是因为它有什么作用?您不使用FragmentManager,但用于表格布局的底层API有
我没有使用FragmentTransaction
您正在
mTabHost.setup(…)
中传递
getSupportFragmentManager()
。是的,这是在幕后发生的,但我无法控制,否则修复程序可能会将.commit()更改为.commitAllowingStateLoss()。这个问题有什么解决方案吗?我也遇到了同样的问题。