0

我使用Eclipse來編譯應用程序,我曾經得到這個錯誤但不是很多。但是因爲我已經切換到android studio,所以我得到了這個崩潰。它幾乎崩潰了所有設備。我試過做一切,但似乎無法解決這個問題。我試過使用getfragmentManager()和getSupportFragmentManager(),在兩者中都得到這個崩潰。不知道現在該做什麼?IllegalStateException:無活動FragmentManager.java

下面是我用來切換片段的代碼。

private void showFragment(Fragment fragment){ 
fragmentManager = getFragmentManager(); 
fragmentTransaction = fragmentManager.beginTransaction(); 
if (!fragment.isAdded()) { 
     fragmentTransaction.replace(R.id.home_frame, fragment).commitAllowingStateLoss(); 
     currentFragment = fragment; 
    } 
} 

和我所有的片段延長它具有以下代碼

private static final Field sChildFragmentManagerField; 

static { 
    Field f = null; 
    try { 
     f = Fragment.class.getDeclaredField("mChildFragmentManager"); 
     f.setAccessible(true); 
    } catch (NoSuchFieldException e) { 
     Log.wtf("LOGTAG", "Error getting mChildFragmentManager field", e); 
    } 
    sChildFragmentManagerField = f; 
} 

@Override 
public void onDetach() { 
    super.onDetach(); 

    if (sChildFragmentManagerField != null) { 
     try { 
      sChildFragmentManagerField.set(this, null); 
     } catch (Exception e) { 
      Log.e("LOGTAG", "Error setting mChildFragmentManager field", e); 
     } 
    } 

} 

請大家幫幫忙基地片段。我在商店裏收到大量的崩潰和糟糕的評論。

下面是我的堆棧跟蹤

Fatal Exception: java.lang.IllegalStateException: No activity 
    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1054) 
    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1049) 
    at android.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1871) 
    at android.app.Fragment.performActivityCreated(Fragment.java:2067) 
    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:912) 
    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067) 
    at android.app.BackStackRecord.run(BackStackRecord.java:833) 
    at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1454) 
    at android.app.FragmentManagerImpl$1.run(FragmentManager.java:447) 
+0

你爲什麼使用反射來獲取子FragmentManager? –

+1

我使用的此鏈接](http://stackoverflow.com/questions/14929907/causing-a-java-illegalstateexception-error-no-activity-only-when-navigating-to)嘗試和解決,這被標記作爲正確的答案,並且確實將錯誤修復到了極限,但沒有完全解決它。 – Renegade

回答

0

好吧,我到處找我找不到此修復程序。 但是做了以下兩項更改,我能夠解決該問題。

首先,我不是每次都將getChildFragmentManager()作爲參數傳遞,而是在應用程序類中創建一個對象並使用它。

其次,顯然我在相同的片段中使用了兩次getChildFragmentManager(),即我有兩個嵌套片段。我刪除了一個。

相關問題