Edytuj: Aby uzyskać szczegółowe instrukcje, sprawdź my answer.ActionBarSherlock + Maps + Loaders = java.lang.NoClassDefFoundError
Walczę z tym od dwóch dni, mam nadzieję, że ktoś może pomóc.
Próbuję użyć najnowszego ActionBarSherlock (4.0) z MapView. Wiedziałem, że jest to problematyczne z fragmentami, ale nie potrzebuję ich w tym działaniu. Potrzebuję jednak ładowarek i wydaje się, że aby korzystać z ładowarek, muszę również rozszerzyć działanie FragmentActivity. Nie ma problemu, pomyślałem, mamy android-support-v4-googlemaps od Pete Doyle'a. Jak zasugerowano w wielu wątkach SO i Grupach dyskusyjnych Google, buduję system ABS z obsługą Androida-v4-googlemaps JAR (Android-support-v13-r7-googlemaps.jar) zamiast android-support-v4.jar. Potem użyłem go jako biblioteki do mojego projektu.
Teraz chciałbym mieć moja działalność w ten sposób:
public class BananoutMapActivity extends SherlockFragmentActivity implements LoaderCallbacks<ArrayList<EventItem>>{
Problem:
To kompiluje, ale wyrzuca błąd wykonania: E/AndroidRuntime(29159): java.lang.NoClassDefFoundError: ndl.klimczak.bananout.BananoutMapActivity
Rzeczy, które sprawdziłem trzykrotnie:
- zarówno projekt biblioteki ActionBarSherlock i mój projekt jest skierowany do API Google 4.0.3
- mam
<uses-library android:name="com.google.android.maps" />
i mam go w tagu aplikacji. - ja też mam ten sam android-support-V13-R7-googlemaps.jar na drodze budowania mojego projektu
- mam
.BananoutMapActivity
zadeklarowane w moim manifest
Co ciekawe:
Kiedy go uruchomić na emulatorze ICS to działa (pojawia się błąd na 2. * emulatory i moje urządzenie 2.3.7), na Honeycomb to działa zbyt pewnie, to kwestia pomocą ACL chyba
Kiedy usunąć
implements LoaderCallbacks<ArrayList<EventItem>>
część to działa zbyt, ale w ten sposób, że nie jestem w stanie wykorzystać LoaderManager
Dlaczego na ziemi błąd NoClassDefFoundError i jak zdobyć Ładowarki działa w moim MapCapableSherlockEnabledFragmentActivity ?
Właśnie o tym napisałem. Wydaje się być problemem. –
Dokładnie! Po prostu nie mogę uwierzyć, że przeoczyłem coś tak oczywistego! Dziękuję Ci bardzo! Oprócz tego używam wersji kompatybilnej z Pete Doyle'em biblioteki googlemaps, która zawiera również v4, więc pomyślałem, że to nie będzie problem (i nie jest, gdy przełączam import). –
Ah tak. Jest to dodatek (a nie ostateczny zamiennik) wersji v4, który zawiera specjalny adapter pagerów, który jest nieco bliższy ramie w celu optymalizacji. Dopóki go nie użyjesz, będziesz więcej niż w porządku. –