6

Potrzebuję użyć zagnieżdżonych fragmentów do mojej aplikacji, więc chciałbym użyć getChildFragmentManager.getChildFragmentManager podnieść wyjątek NoSuchMethod na urządzeniu 4.0.3, ale nie w 4.2.2.

Mam dwóch urządzeń:

  • Prawdziwy jeden działa na 4.0.3
  • wirtualny działa na 4.2.2

działa całkiem dobrze na drugim, ale nie na moim fizycznym urządzeniu, ponieważ wywołanie tej metody podnosi wyjątek NoSuchMethod.

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

Mój projekt odwołuje użyć biblioteki tak Pobrałem najnowszą bibliotekę wsparcia android (od kierownika SDK) i dodałem go zarówno do biblioteki i głównego projektu.

Projects view in Eclipse

Również postanowiłem ustawić minimalną wersję SDK obsługiwanego do 4.0.3 (wersja moje prawdziwe urządzenie pracuje dalej):

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

Zarówno głównego projektu i biblioteki.

Jeśli ktoś ma pomysł, co mogę zrobić źle, daj mi znać.

Odpowiedz

9

getChildFragmentManager() jest dostępny tylko za pośrednictwem mechanizmu przenoszenia fragmentów pakietu Android Support lub na poziomie API 17+ dla fragmentów natywnych. Dlatego też, jeśli próbujesz użyć natywnych fragmentów na poziomie API 15 lub 16, a także próbujesz użyć getChildFragmentManager(), otrzymasz ten błąd.

+0

Dzięki. Używanie Fragment z biblioteki backport jest problemem, chyba że jest z nimi sposób na TabListener? – nathan

+0

@nathan: 'TabListener' nie jest związany z żadnym fragmentem, nie mówiąc już o rodzimym. Ty * możesz otrzymać * FragmentTransaction, której możesz użyć, jeden dla natywnych fragmentów API poziomu 11. Nie musisz używać tej 'FragmentTransaction'. Możesz użyć własnego 'FragmentTransaction' z backportu lub zrobić coś innego, co w ogóle nie zawiera fragmentów. – CommonsWare

+0

Oh to wyjaśnia. Właśnie zmieniłem wszystkie fragmenty pomocy technicznej na natywną przyczynę, nie będę już obsługiwał ICS, i wygląda na to, że nadal będę musiał korzystać z pomocy <_ < –

0

spróbuj użyć android.support.v4.app.Fragment zamiast:

Powiązane problemy