即使有声明的类,也会发生Classnotfound异常

时间:2013-01-24 06:24:56

标签: android

当我通过eclipse运行时,我的应用程序运行正常,但是当我导出它然后通过adb install并运行安装它时,它会跟随堆栈跟踪崩溃。

基本上,它表示未找到主启动器活动,虽然它已声明,并且设置为启动器类别的主要活动:

堆栈跟踪:

01-24 11:50:59.029: E/AndroidRuntime(7768): Uncaught handler: thread main exiting due to uncaught exception
01-24 11:50:59.299: E/AndroidRuntime(7768): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.nitinbansal85.android.carplexindia/com.nitinbansal85.android.carplexindia.ActivityDashboard}: java.lang.ClassNotFoundException: com.nitinbansal85.android.carplexindia.ActivityDashboard in loader dalvik.system.PathClassLoader@32518de0
01-24 11:50:59.299: E/AndroidRuntime(7768):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2474)
01-24 11:50:59.299: E/AndroidRuntime(7768):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2569)
01-24 11:50:59.299: E/AndroidRuntime(7768):     at android.app.ActivityThread.access$2200(ActivityThread.java:125)
01-24 11:50:59.299: E/AndroidRuntime(7768):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1914)
01-24 11:50:59.299: E/AndroidRuntime(7768):     at android.os.Handler.dispatchMessage(Handler.java:99)
01-24 11:50:59.299: E/AndroidRuntime(7768):     at android.os.Looper.loop(Looper.java:123)
01-24 11:50:59.299: E/AndroidRuntime(7768):     at android.app.ActivityThread.main(ActivityThread.java:4420)
01-24 11:50:59.299: E/AndroidRuntime(7768):     at java.lang.reflect.Method.invokeNative(Native Method)
01-24 11:50:59.299: E/AndroidRuntime(7768):     at java.lang.reflect.Method.invoke(Method.java:521)
01-24 11:50:59.299: E/AndroidRuntime(7768):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:924)
01-24 11:50:59.299: E/AndroidRuntime(7768):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:682)
01-24 11:50:59.299: E/AndroidRuntime(7768):     at dalvik.system.NativeStart.main(Native Method)
01-24 11:50:59.299: E/AndroidRuntime(7768): Caused by: java.lang.ClassNotFoundException: com.nitinbansal85.android.carplexindia.ActivityDashboard in loader dalvik.system.PathClassLoader@32518de0
01-24 11:50:59.299: E/AndroidRuntime(7768):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
01-24 11:50:59.299: E/AndroidRuntime(7768):     at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
01-24 11:50:59.299: E/AndroidRuntime(7768):     at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
01-24 11:50:59.299: E/AndroidRuntime(7768):     at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
01-24 11:50:59.299: E/AndroidRuntime(7768):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2466)
01-24 11:50:59.299: E/AndroidRuntime(7768):     ... 11 more
01-24 11:51:01.369: E/msm7k.gralloc(1281): [unregister] handle 0x43bf20 still locked (state=40000001)

我还使用facebook sdkairpushstartApp sdk's,并将它们包含在导入/导出中

有什么建议可能出错吗?

提前 的修改

忘了提一下,我已经重命名了包含它的项目和文件夹。

2 个答案:

答案 0 :(得分:0)

对于Android应用程序,我对外部jar文件也有同样的问题。在我的情况下,解决方案是将jar从“lib”文件夹移动到android默认的“libs”文件夹。

当jar在lib文件夹中时(也被添加到构建路径中),虽然Eclipse中没有构建问题,但应用程序在运行时给出了ClassNotFoundException。一旦我将jar移动到“libs”文件夹,jar就开始出现在“Android Dependencies”下,应用程序开始正常工作。

这些是关于同一主题的其他一些讨论。

1)http://stackoverflow.com/questions/3642928/adding-a-library-jar-to-an-eclipse-    android-project

2)http://stackoverflow.com/questions/7185488/android-what-is-the-folder-name-of-the-jar-files-lib-or-libs

3)http://stackoverflow.com/questions/2611105/how-to-specify-lib-folder-for-jars-when-using-android-generated-ant-build-file

这可能会有所帮助...... !!!!!

答案 1 :(得分:0)

由于Stacktrace告诉android首先启动NewActivity - > LoadClass - > FindClass - > ClassNotFoundException可以是:

  • Manifest中的错误包声明(com.nitinbansal85.android.carplexindia.ActivityDashboard)
  • Android Debug Bridge(ADB)apk创建问题。
  • 无法从libs

    加载其他jar文件

    您也可以尝试从eclipse编译项目并直接从项目的bin目录中使用.apk并检查差异。