java – 包含库jar时的ClassNotFoundException
在我的
android项目中,我在libs文件夹中添加了一个库jar.
这个jar包含三个不同的包: >谷歌GSON(com.google.gson) 使用ant编译/存档jar. eclipse中没有错误,但是当我尝试在设备上运行我的Android应用程序时,我得到了这个: 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 它肯定是我的jar导致这个,因为如果我从MainActivity中删除对它的类的引用,那么问题就解决了,应用程序在设备上运行. 使用apktool我检查了什么进入apk,我发现一切都被添加到smali目录,这是除了我的包(com.example.core)以外的一切. 我的环境: 我测试过的设备: 有任何想法吗? 解决方法
您将获得NoClassDefFoundError,因为您的jar文件在运行时不可用.
为了使它在运行时可用,您必须在java构建路径中检查jar文件的复选框,如下所示: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- java中的utf8问题
- java解析excel文件的方法
- Five ways to maximize Java NIO and NIO.2--转
- java – 使用BorderLayout将图形添加到JFrame中
- Java JPA:Performant检查实体是否已在DB中
- java – JAX-RS / Jersey资源路径是否值得继承?
- 为什么Java forkbomb不会导致StackOverflowError?
- 使用自定义FindBugs插件扩展SonarQube FindBugs插件
- 在Java 9上的多版本JAR文件中调用了错误的类?
- Java 集合的简单实现 (ArrayList & LinkedList & Q