6

我需要爲我的應用程序使用嵌套片段,所以我想使用getChildFragmentManagergetChildFragmentManager在4.0.3設備上引發NoSuchMethod異常,但不在4.2.2上

我有兩個設備:

  • 一個真實的4.0.3
  • 運行一個虛擬的4.2.2

運行它的工作原理相當不錯的第二個但不因爲對此方法的調用會引起NoSuchMethod異常。

07-10 19:53:51.722: E/AndroidRuntime(29711): java.lang.NoSuchMethodError: fr.epitech.test_esi.fragments.ReservationCalendarFragment.getChildFragmentManager 

我的項目中使用引用的庫,所以我已經下載了最新的Android支持庫(從SDK經理),我已經把它添加到庫和主項目都。

Projects view in Eclipse

此外,我決定將支持4.0.3的最低SDK版本(我的實際設備上運行的版本):

<uses-sdk 
    android:minSdkVersion="15" 
    android:targetSdkVersion="17" /> 

對於這兩個主體工程和圖書館。

如果有人知道我可以做錯什麼,請告訴我。

回答

9

getChildFragmentManager()僅可通過Android支持包的片段回送或API Level 17+獲得本地片段。因此,如果您嘗試在API Level 15或16上使用本機片段,並且您也嘗試使用getChildFragmentManager(),則會出現此錯誤。

+0

謝謝。必須從backport lib使用Fragment是一個問題,除非有一種方法可以使用TabListener來處理它們? – nathan

+0

@nathan:'TabListener'沒有綁定到任何類型的片段,更不用說本地的片段了。您*發生*提供您可以使用的'FragmentTransaction',一個用於本地API Level 11片段。你不必使用那個'FragmentTransaction'。歡迎您從後端使用您自己的'FragmentTransaction',或者做一些根本不涉及片段的東西。 – CommonsWare

+0

哦這解釋了它。我只是將所有支持片段更改爲本地原因,因爲我不再支持ICS,好吧,好像我仍然必須使用支持<_ < –

0

嘗試使用android.support.v4.app.Fragment代替

相關問題