Mam dość duży projekt aplikacji na Androida, który odwołuje się do kilku projektów bibliotecznych. Wszystko było w porządku, dopóki nie zaktualizowałem wtyczki Eclipse ADT do najnowszej wersji (v22). Oczywiście zaktualizowałem także SDK. Nie widzę żadnych błędów kompilacji w środowisku Eclipse, ale kiedy uruchamiam projekt na telefonie, pojawia się błąd NoClassDefFoundError.
java.lang.NoClassDefFoundError: org.acra.ACRA
....
Biblioteka arca jest zawarta w jednym z projektów bibliotecznych, do których się odwołuje (w folderze libs) i widzę ją w „Bibliotekach prywatnych Androida” w eksploratorze pakietów, jak już powiedziałem, bez błędów kompilacji. Projekt działa poprawnie na wszystkich komputerach, które nie zaktualizowały ADT.
Próbowałem już wielu rzeczy, w tym między innymi:
- ponownie zainstaluj zestaw Android SDK
- pobierz nowy pakiet ADT
- usuń cały mój kod i pobierz go ponownie z git
- skopiuj daną bibliotekę do projektu aplikacji
- skomentuj kod korzystający z tej biblioteki - po prostu otrzymuję ten sam błąd dla następnej biblioteki
wszystko bez powodzenia, więc zaczynam się naprawdę rozpaczać.
Byłbym bardzo szczęśliwy, gdyby ktokolwiek mógł dać mi wskazówkę, jak rozwiązać ten problem.
libs/
, ale równie dobrze możesz to sprawdzić, na wypadek, gdybyś dodał coś dolibs/
kilku miesięcy później i zapomniał o tym.Po prostu sprawdzenie prywatnych bibliotek Androida nie wystarczyło, musiałem również zainstalować narzędzia do budowania zestawu SDK systemu Android w menedżerze zestawu SDK systemu Android.
źródło
Miałem również ten sam problem i mój
adt
był22.0.1
. I żadne z powyższych rozwiązań nie zadziałało. Ponadto, dodając projekt biblioteki zewnętrznej do działającego projektu, zawsze sprawdzamgen
folder projektu roboczego i jeśliR
jest tam projekt biblioteki zewnętrznej (wraz z nazwą pakietu), to eksportowany jest tylko projekt biblioteki zewnętrznej. A w moimgen
folderze niepackagename
pokazano żadnej biblioteki zewnętrznej.Sprawdziłem więc
project.properties
plik i nie było żadnego łącza do biblioteki zewnętrznejandroid.library.reference.1=
. Więc ręcznie dodałem tam odwołanie do biblioteki zewnętrznej, mimo że dodałemproject->properties->Java Build Path->Projects->Add
. Więc ręczna edycjaproject.properties
zrobiła dla mnie całą pracę.źródło
android.library.reference.n
jest , ale raczej -> -> -> -> . Haczyka .java build path
project
properties
Android
Library
Add...
Napotkałem podobny problem, spędziłem około 3 godzin, ale żadna z proponowanych tutaj decyzji nie pomogła ... Wreszcie znalazłem źródło problemu: moje pliki projektu i project.properties były tylko do odczytu. Eclipse po prostu dyskretnie ignoruje wszelkie zmiany w zależnościach bibliotek, gdy robię to w GUI!
źródło
Miałem ten sam problem. Stało się tak z powodu projektu zaćmienia. Aby go rozwiązać, stworzyłem nowy projekt w środowisku Eclipse, skopiowałem do niego moje istniejące klasy projektów i zasoby, a następnie ponownie uruchomiłem środowisko Eclipse i dodałem własne niestandardowe dołączenia.
źródło
Miałem podobny problem i moja odpowiedź różni się nieco od CommonsWare. Oto mój zrzut ekranu:
Po sprawdzeniu libs z powrotem w mojej kompilacji znów zaczął działać.
źródło
Android Dependencies
został zastąpiony przezAndroid Private Libraries
i może nadal tam być ze względów starszych. Myślę, że można go usunąć w dowolnym momencie.Miałem również ten sam problem,
i) dodaj gson lib jako odnośniki librairies
ii) sprawdź go w Javie Build Path
źródło