Wyjątek ClassNotFoundException, gdy zawiera słoik biblioteki
W moim projekcie na Androida dodałem słoik biblioteki dolibs
teczka.
Ten słoik zawiera trzy różne pakiety:
Słoik jest kompilowany / archiwizowany za pomocą ant.
Nie ma błędów w zaćmieniu, ale kiedy próbuję uruchomić moją aplikację na Androida na urządzeniu, otrzymuję to:
E/AndroidRuntime(23807): FATAL EXCEPTION: main
E/AndroidRuntime(23807): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.project/com.example.project.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.project.MainActivity" on path: /data/app/com.example.project-1.apk
E/AndroidRuntime(23807): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106)
E/AndroidRuntime(23807): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
E/AndroidRuntime(23807): at android.app.ActivityThread.access$600(ActivityThread.java:141)
E/AndroidRuntime(23807): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
E/AndroidRuntime(23807): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(23807): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(23807): at android.app.ActivityThread.main(ActivityThread.java:5039)
E/AndroidRuntime(23807): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(23807): at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(23807): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
E/AndroidRuntime(23807): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
E/AndroidRuntime(23807): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(23807): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.project.MainActivity" on path: /data/app/com.example.project-1.apk
E/AndroidRuntime(23807): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
E/AndroidRuntime(23807): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
E/AndroidRuntime(23807): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
E/AndroidRuntime(23807): at android.app.Instrumentation.newActivity(Instrumentation.java:1054)
E/AndroidRuntime(23807): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097)
E/AndroidRuntime(23807): ... 11 more
I to jest zdecydowanie mój jar, który to powoduje, ponieważ jeśli usunę odniesienia do jego klas z MainActivity, problem zostanie rozwiązany i aplikacja uruchomi się na urządzeniu.
Za pomocąapktool Sprawdziłem, co dzieje się z apk, i odkryłem, że wszystko jest dodawane dosmali
katalog, czyli wszystko oprócz mojego pakietu (com.example.core).
Zatem wszystkie klasy aplikacji dla systemu Android (com.example.project), gson (com.google.gson) i netty (org.jboss.netty) z mojego słoika są tam, ale nie com.example.core.
Moje środowisko:
Eclipse 4.2.1
ADT 21.0.1
Java 7 (oracle)
Urządzenia, które testowałem:
Samsung Galaxy S2
LG nexus 4
Jakieś pomysły? Dzięki.