2012-05-07 22 views
11

Od czasu aktualizacji ADT do 19, zacząłem otrzymywać następujący błąd. Problem pojawia się za każdym razem, gdy uruchamiam aplikacje. Sprawdziłem cały poprzedni post związany z tym, ale wygląda na to, że żaden z nich nie pomaga. Każdy pomysł, byłoby bardzo mile widziane ...Wyjątek ClassNotFoundException po aktualizacji do ADT 18

Moja konfiguracja

  1. Obecnie mam ADT 18 SDK 19, elcipse w Windows 7 64bit.
  2. Używam projektu biblioteki, który powoduje, że ashare.jar i wszystkie moje zewnętrzne słoiki (tj. Dropbox, commons codec) znajdują się w folderze "libs" w projekcie Library (Ashare).
  3. Nie używam proguard.

Jak widzimy ten problem.

  1. Załóż apk w Eclipse> {} myproject> prawy przycisk myszy> Narzędzia Android> Export podpisał pakiet aplikacji
  2. zainstalować apk w emulatorze lub dev.phone używając "adb install XXX.apk"
  3. rozpocząć aplikacja. Następnie BOOM. rzuca błąd.

Niektóre zauważalne rzeczy są

  1. To zaczęło się dziać po I zaktualizowany do ADT w moim Eclipse do wersji 18
  2. Zdarza się tylko wtedy, gdy robię podpisaną apk i uruchomić go w emulatorze lub dev. telefon.
  3. Nie widzę problemu, jeśli uruchomię swoją aplikację za pomocą {MyProject}> Kliknij prawym przyciskiem myszy> Uruchom jako> Aplikacja Android
  4. Po sprawdzeniu w klasie classes.dex widzę, że brakuje niektórych klas. Nie jestem pewien, ale czuję, że proces budowania nie jest tym wszystkich klas classes.dex
  5. podczas eksportu, nie ma błędu w konsoli Zaćmienie (używam opcji opisowy w Android> Budowanie> Budowanie ustawienie wyjścia)

Java Wyjątek

05-07 08:52:48.336: D/AndroidRuntime(3055): Shutting down VM 
05-07 08:52:48.336: W/dalvikvm(3055): threadid=1: thread exiting with uncaught exception (group=0x40a3e1f8) 
05-07 08:52:48.340: E/AndroidRuntime(3055): FATAL EXCEPTION: main 
05-07 08:52:48.340: E/AndroidRuntime(3055): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.acj0.barcodeexpdemo/com.acj0.barcodeexpdemo.Launcher}: java.lang.ClassNotFoundException: com.acj0.barcodeexpdemo.Launcher 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1880) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.app.ActivityThread.access$600(ActivityThread.java:123) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.os.Handler.dispatchMessage(Handler.java:99) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.os.Looper.loop(Looper.java:137) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.app.ActivityThread.main(ActivityThread.java:4424) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at java.lang.reflect.Method.invokeNative(Native Method) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at java.lang.reflect.Method.invoke(Method.java:511) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at dalvik.system.NativeStart.main(Native Method) 
05-07 08:52:48.340: E/AndroidRuntime(3055): Caused by: java.lang.ClassNotFoundException: com.acj0.barcodeexpdemo.Launcher 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.app.Instrumentation.newActivity(Instrumentation.java:1023) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1871) 
05-07 08:52:48.340: E/AndroidRuntime(3055):  ... 11 more 

AKTUALIZACJA 5/7/2012

  • Wszystkie moje słoiki są w "libs" folder Biblioteki projekt i widzę je wszystkie zawarte w "Android współzależności"

UPDATE 18.05.2012 - Tymczasowe SOLVED

  • znalazłem rozwiązanie tymczasowe. Tuż przed uruchomieniem "Eksportuj podpisanego pakietu aplikacji" zrobiłem "Wyczyść" BEZ opcji "kompiluj automatycznie". Wtedy nie widzę już błędu. Nie wiem, dlaczego to działa. Jeśli masz jakiś pomysł, daj mi znać.
+0

Umieść źródło brakujących klas w swoim pliku dex. Spróbuj także przechwycić logcat wygenerowany podczas procesu odeks, gdy apk jest zainstalowany. –

+0

Miałem podobny problem ... Czy biblioteki są zawarte w folderze o nazwie lib? Lub libs? Powinieneś pójść z drugim ... – Shine

+0

Po aktualizacji wersji SDK miałem ten sam wyjątek zgłoszony. Pytanie i odpowiedź brzmi ([tutaj] (http://stackoverflow.com/questions/9831019/updated-sdk-version-getting-classnotfoundexception-android-support-v4-view-vie)) – wdziemia

Odpowiedz

2

Umieść swoje zewnętrzne słoiki w katalogu libs. Możesz rzucić okiem na this link

+0

Dziękuję lujop. Mam wszystkie moje słoiki w folderze "libs" i widzę, że wszystkie te są automatycznie dołączane do Android Dependencies. – ChrsitopherJ

+0

Czy używasz proguard? – lujop

+0

Nie używamy proguard. Ten problem występuje bez konfiguracji progu. – ChrsitopherJ

1

Miałem ten sam problem, chociaż zrobiłem wszystko, jak opisano w link lujop mentioned. Oto, czego brakuje:

  1. prawym przyciskiem myszy na projekcie> Build Path> Configure Build Path ...
  2. kliknij zakładkę "Order lub eksportuj"
  3. zaznacz pola wyboru obok bibliotek (Android xxx, Android zależności) oraz inne projekty do którego się odnosimy
  4. Czyste swój projekt
  5. to powinno być to

mam nadzieję, że pomoże!

0

To doprowadziło mnie do szału, jak przez cały dzień, tylko uświadomić sobie głupie mnie nazwa aplikacji w manifeście była zła. Dla nazwy aplikacji miałem: android: name = "com.diack.locdatafeeds"

brakowało mojej działalności głównym android: name = "com.diack.locdatafeeds.Mainactivity"

nadzieję, że to pomaga ktoś

Powiązane problemy