Android Fragment java.lang.IllegalStateException:没有主机

时间:2016-05-10 11:04:20

标签: java android fragment fragmentmanager

我对此问题进行了大量搜索,但没有答案可以帮助我。 我在here中看到了同样的问题,但它无能为力,所以我发布了我的问题,希望任何人都可以帮助我。这对我来说很严肃。 我有一个Activity(称为activity A,它的MainActivity)TabLayoutViewPager,其中包含5 Fragments

在正常情况下,一切都很好。但是有一段时间我尝试用以下方案重新打开A1

  1. 开始Activity A
  2. 从上面的fragments中的一个开始,我开始一个名为B的新活动。
  3. 从B开始,我尝试启动Activity C
  4. 从C开始,在上面开始Activity A并清除所有后退中的activities intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);
  5. 我低于Error

      

    java.lang.IllegalStateException:没有主机                                                                                  在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1239)                                                                                  在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1234)                                                                                  在android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:2046)                                                                                  在android.support.v4.app.Fragment.performActivityCreated(Fragment.java:1989)                                                                                  在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1092)                                                                                  在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)                                                                                  在android.support.v4.app.BackStackRecord.run(BackStackRecord.java:742)                                                                                  在android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617)                                                                                  在android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:570)

    从现在开始,我无法再启动我的应用程序了,每次尝试启动我的应用程序时,都会遇到上述相同错误的异常。

    我尝试使用此topic中的解决方案,但仍然无法解决我的问题

    我调查并发现Exception在FragmentManager类中由代码发生:

    if (mHost == null && newState != Fragment.INITIALIZING) {
            throw new IllegalStateException("No host");
        }
    

    我不知道为什么mHost为空,每当我尝试从commit拨打fragmentManager时,exception都会被抛出。

    如果我清除data的{​​{1}},它将恢复正常。

0 个答案:

没有答案