2013-05-18 18 views
20

Spędziłem wiele godzin próbując uzyskać bibliotekę do pracy z moim projektem w Android Studio, a ja po prostu nie mogę tego rozgryźć.NoClassDefFoundError z bibliotekami w Android Studio

Oto co moje zależności wyglądać dla mojego modułu enter image description here

i moich bibliotek: http://i.imgur.com/t8E3sB8.png

Mam jeszcze dodane

compile files('libs/signpost-commonshttp4-1.2.1.2.jar') 
compile files('libs/signpost-core-1.2.1.2.jar') 

do mojego build.gradle . Bez tego aplikacja nawet się nie skompiluje.

Na tym etapie, gdy próbuję odwołać się do jednej z bibliotek w kodzie, aplikacja ulega awarii z wyjątkiem NoClassDefFoundError.

Coś mi mówi, że to nie powinno być takie trudne - co ja przeoczyłem?

LogCat:

05-17 21:51:15.676: I/ActivityManager(714): START u0 {flg=0x10104000 cmp=com.crazydog.splitwiser/.InitialSplash bnds=[328,402][656,692]} from pid 1513 
05-17 21:51:15.896: I/ActivityManager(714): Start proc com.crazydog.splitwiser for activity com.crazydog.splitwiser/.InitialSplash: pid=18174 uid=10288 gids={50288, 3003, 1028} 
05-17 21:51:16.326: I/ActivityManager(714): Displayed com.crazydog.splitwiser/.InitialSplash: +437ms (total +1m9s209ms) 
05-17 21:51:17.017: I/ActivityManager(714): START u0 {cmp=com.crazydog.splitwiser/.LogIn} from pid 18174 
05-17 21:51:17.097: E/dalvikvm(18174): Could not find class 'oauth.signpost.commonshttp.CommonsHttpOAuthConsumer', referenced from method com.crazydog.splitwiser.Toolkit.oAuthTransaction 
05-17 21:51:17.097: W/dalvikvm(18174): VFY: unable to resolve new-instance 662 (Loauth/signpost/commonshttp/CommonsHttpOAuthConsumer;) in Lcom/crazydog/splitwiser/Toolkit; 
05-17 21:51:17.097: D/dalvikvm(18174): DexOpt: unable to opt direct call 0x112f at 0x08 in Lcom/crazydog/splitwiser/Toolkit;.oAuthTransaction 
05-17 21:51:17.107: E/AndroidRuntime(18174): at com.crazydog.splitwiser.Toolkit.oAuthTransaction(Toolkit.java:65) 
05-17 21:51:17.107: E/AndroidRuntime(18174): at com.crazydog.splitwiser.LogIn.onResume(LogIn.java:116) 
05-17 21:51:17.117: W/ActivityManager(714): Force finishing activity com.crazydog.splitwiser/.LogIn 
05-17 21:51:17.117: W/ActivityManager(714): Force finishing activity com.crazydog.splitwiser/.InitialSplash 
05-17 21:51:17.618: W/ActivityManager(714): Activity pause timeout for ActivityRecord{40d040d0 u0 com.crazydog.splitwiser/.LogIn} 
+0

Opublikuj swój logcat – moDev

+0

Dodałem go do posta. – jhirsch

+0

czy rdzeń opiera się na http? – Blundell

Odpowiedz

29

miałem dokładnie ten sam problem, I podoba Ci myślałem, że wystarczy dodać

compile files('libs/signpost-commonshttp4-1.2.1.2.jar') 
compile files('libs/signpost-core-1.2.1.2.jar') 

wszystko działa po Zrobiłem ./gradlew clean (jestem na komputerze Mac, więc w twoim przypadku odpowiednik.) Powinieneś wykonać to polecenie z wiersza poleceń Terminal/Command, gdy znajdujesz się w katalogu głównym projektu.

+1

Bardzo przydatne, dzięki! Działa na Windows 8, nazywając go "gradle clean" w wersji proj. –

+0

ooo dziękuję sooooo wiele ... zajęło mi to 4 godziny! <3 <3 - (jako użytkownik mac możesz zainstalować gradle używając "brew install gradle" - jeśli nie masz naparu GET IT! –

+3

To bardzo dziwne, że czysty gradlew działa podczas budowania -> Czysty projekt nie działa ... –

Powiązane problemy