ClassNotFoundException beim Einfügen eines Bibliotheksglases
In meinem Android-Projekt habe ich ein Bibliotheksglas in das hinzugefügtlibs
Mappe.
Dieses Glas enthält drei verschiedene Pakete:
Das Glas wird mit ant kompiliert / archiviert.
Es gibt keine Fehler in Eclipse, aber wenn ich versuche, meine Android-App auf einem Gerät auszuführen, erhalte ich Folgendes:
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
Und es ist definitiv mein Glas, das das verursacht, denn wenn ich Verweise auf seine Klassen aus der MainActivity entferne, ist das Problem gelöst und die App läuft auf dem Gerät.
Verwendenapktool Ich habe nachgesehen, was in der apk steht, und festgestellt, dass alles zum apk hinzugefügt wirdsmali
Verzeichnis, das ist alles außer meinem Paket (com.example.core).
Alle Android-App-Klassen (com.example.project), gson (com.google.gson) und netty (org.jboss.netty) aus meinem Jar sind da, com.example.core jedoch nicht.
Meine Umgebung:
Eclipse 4.2.1
ADT 21.0.1
Java 7 (Orakel)
Geräte, auf denen ich getestet habe:
Samsung galaxy s2
LG Nexus 4
Irgendwelche Ideen? Vielen Dank.