【问题标题】:Android Application gets a ClassNotFoundExceptionAndroid 应用程序获取 ClassNotFoundException
【发布时间】:2014-01-28 21:17:30
【问题描述】:

我最近在启动应用程序时遇到了问题。几周前它运行良好,但在那段时间我做了一些更改,包括导入重构它(我添加了一堆包,但随后恢复了这些更改),从 android 站点的 ADT 更新(它仍然在 Eclipse Juno 上运行) 以使 Kepler 黯然失色(我下载了 ADT 插件),并将它导入到我的新笔记本电脑(也使用 Kepler)。现在,当我使用Import -> Existing Android Code Into Workspace 导入应用程序时,我收到一条错误消息,提示“无法从“(myappname)”设置项目描述,因为项目描述文件(.project)与文件系统不同步。”。如果我忽略此消息并继续,并在我的手机上运行应用程序,LogCat 会在我的主启动器活动中显示错误消息 ClassNotFoundException。

我环顾四周并试图通过重建路径来解决这个问题(检查了 android 私有库)。这是我发现的唯一相关修复,但它不起作用。

我应该指出一些可能会或可能不会有帮助的事情: -我尝试运行旧版本的应用程序并且它可以工作(在导入之后和在 Kepler 上,即使它是在 Juno Eclipse 上编写的)。 -我的应用程序导入了支持包 v7-compat(在所有更改之前都有效)

我已经被这个问题困住了几天,没有运气。任何和所有的帮助将不胜感激。哦,如果有人需要更多信息来帮助我解决这个问题,请问。

编辑: 这是错误日志:

01-27 19:22:59.603: E/AndroidRuntime(16471): FATAL EXCEPTION: main
01-27 19:22:59.603: E/AndroidRuntime(16471): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.Spit.pocketbook/com.Spit.pocketbook.SwipeActivity}: java.lang.ClassNotFoundException: com.Spit.pocketbook.SwipeActivity
01-27 19:22:59.603: E/AndroidRuntime(16471):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2034)
01-27 19:22:59.603: E/AndroidRuntime(16471):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
01-27 19:22:59.603: E/AndroidRuntime(16471):    at android.app.ActivityThread.access$700(ActivityThread.java:143)
01-27 19:22:59.603: E/AndroidRuntime(16471):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1241)
01-27 19:22:59.603: E/AndroidRuntime(16471):    at android.os.Handler.dispatchMessage(Handler.java:99)
01-27 19:22:59.603: E/AndroidRuntime(16471):    at android.os.Looper.loop(Looper.java:137)
01-27 19:22:59.603: E/AndroidRuntime(16471):    at android.app.ActivityThread.main(ActivityThread.java:4950)
01-27 19:22:59.603: E/AndroidRuntime(16471):    at java.lang.reflect.Method.invokeNative(Native Method)
01-27 19:22:59.603: E/AndroidRuntime(16471):    at java.lang.reflect.Method.invoke(Method.java:511)
01-27 19:22:59.603: E/AndroidRuntime(16471):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004)
01-27 19:22:59.603: E/AndroidRuntime(16471):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771)
01-27 19:22:59.603: E/AndroidRuntime(16471):    at dalvik.system.NativeStart.main(Native Method)
01-27 19:22:59.603: E/AndroidRuntime(16471): Caused by: java.lang.ClassNotFoundException: com.Spit.pocketbook.SwipeActivity
01-27 19:22:59.603: E/AndroidRuntime(16471):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
01-27 19:22:59.603: E/AndroidRuntime(16471):    at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
01-27 19:22:59.603: E/AndroidRuntime(16471):    at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
01-27 19:22:59.603: E/AndroidRuntime(16471):    at android.app.Instrumentation.newActivity(Instrumentation.java:1068)
01-27 19:22:59.603: E/AndroidRuntime(16471):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2025)
01-27 19:22:59.603: E/AndroidRuntime(16471):    ... 11 more

提前谢谢, 吐

【问题讨论】:

  • NoClassFoundException 不存在。发布您的堆栈跟踪。
  • 你有没有试过把你的项目导入Eclipse后右键点击“刷新”?
  • @njzk2 抱歉,标题中的异常错误,但现在已修复,我也发布了错误日志。
  • 我已经刷新了,但问题仍然存在。

标签: android eclipse


【解决方案1】:

在代码中找不到清单中声明的​​类。

检查清单和代码中的包名和类名是否相同。根据清单中数据生成的堆栈跟踪,您的代码应该在package com.Spit.pocketbook 中有class SwipeActivity。请注意,类和包名称区分大小写。按照惯例,包名都是小写的,所以包名中的大写S 看起来很可疑。

【讨论】:

  • 不是这样的。我检查了清单中的所有类名和包名是否与我的源中的匹配。我有一种感觉,这更多是那些令人讨厌的幕后日食混淆,而不是我做了明显错误的事情(但当然我可能是错的)。还有大写的“S”,是的,我需要解决这个问题。它在名单上。
猜你喜欢
  • 2012-03-09
  • 2018-03-26
  • 2019-07-05
  • 2014-03-30
  • 2011-09-03
  • 1970-01-01
  • 1970-01-01
  • 2015-05-07
  • 1970-01-01
相关资源
最近更新 更多