0

我在使用 Android 应用时遇到问题。这是错误消息:

06-29 16:07:28.263: E/AndroidRuntime(196): Uncaught handler: thread main exiting due to uncaught exception
06-29 16:07:28.463: E/AndroidRuntime(196): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.androidcalc/com.calc.AndroidCalc}: java.lang.ClassNotFoundException: com.calc.AndroidCalc in loader dalvik.system.PathClassLoader@44c067c8
06-29 16:07:28.463: E/AndroidRuntime(196):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417)
06-29 16:07:28.463: E/AndroidRuntime(196):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
06-29 16:07:28.463: E/AndroidRuntime(196):  at android.app.ActivityThread.access$2200(ActivityThread.java:119)
06-29 16:07:28.463: E/AndroidRuntime(196):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
06-29 16:07:28.463: E/AndroidRuntime(196):  at android.os.Handler.dispatchMessage(Handler.java:99)
06-29 16:07:28.463: E/AndroidRuntime(196):  at android.os.Looper.loop(Looper.java:123)
06-29 16:07:28.463: E/AndroidRuntime(196):  at android.app.ActivityThread.main(ActivityThread.java:4363)
06-29 16:07:28.463: E/AndroidRuntime(196):  at java.lang.reflect.Method.invokeNative(Native Method)
06-29 16:07:28.463: E/AndroidRuntime(196):  at java.lang.reflect.Method.invoke(Method.java:521)
06-29 16:07:28.463: E/AndroidRuntime(196):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
06-29 16:07:28.463: E/AndroidRuntime(196):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
06-29 16:07:28.463: E/AndroidRuntime(196):  at dalvik.system.NativeStart.main(Native Method)
06-29 16:07:28.463: E/AndroidRuntime(196): Caused by: java.lang.ClassNotFoundException: com.calc.AndroidCalc in loader dalvik.system.PathClassLoader@44c067c8
06-29 16:07:28.463: E/AndroidRuntime(196):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
06-29 16:07:28.463: E/AndroidRuntime(196):  at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
06-29 16:07:28.463: E/AndroidRuntime(196):  at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
06-29 16:07:28.463: E/AndroidRuntime(196):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
06-29 16:07:28.463: E/AndroidRuntime(196):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2409)
06-29 16:07:28.463: E/AndroidRuntime(196):  ... 11 more

我已经检查了谷歌以获得一些帮助,并在 SO 上找到了一些关于此的其他线程,但这些似乎都不符合我的情况。这是发生的事情:

我有一个大约一年前开始编写的应用程序。有一段时间,尽管它不完整,但我还是搁置了它,因为我还有其他事情要做。在闲置了大约 6 个月后,我今天才回到它尝试为平板电脑实现 UI(目前平板电脑 UI 是从超级丑陋的小屏幕 UI 借用的)。这是我所做的:

1) 我创建了一个 layout-large 文件夹来存储新的 UI 元素,我在 UI 元素中从较小的布局文件夹中按 CTRL-C CTRL-V'd 作为使用的基础。

2) 我意识到我的平板电脑实际上被分类为特大号,所以我重复了第 1 步,除了 layout-xlarge。

3)我在layout-xlarge中修改了一些UI修饰(仅文本大小和元素大小,没有触及任何代码)。

4) 我注意到我没有安装模拟我的平板电脑所需的 SDK(我只有 4.0.3 并且需要 4.1.2),所以我通过 SDK 管理器更新了我的 SDK。

5) 更新 SDK 后,我创建了 Tablet VM。

6) 有人告诉我 Eclipse 需要更新很多东西,所以我这样做了。

7) 更新 Eclipse 后,有人告诉我需要返回 SDK 管理器并更新一些东西(特别是称为 Build-tools 的东西),所以我这样做了。

8) 我在我的平板电脑虚拟机上运行程序并得到上述错误。

9)我在我的手机虚拟机上运行程序(在以前的版本下工作)并得到了上述错误。

不知何故,在执行上述步骤时,我没有触及任何一行代码或添加任何新的 Activity 元素(额外的 UI 除外),我设法让我的应用程序无法运行。我已经尝试过以下事情:

1) 我检查了我的 Android 清单。其中唯一的东西是应该存在的单个唯一 Activity 应用程序。

2)我已经完成了项目清理。

3)我读过的前一篇文章建议我删除“bin”和“gen”目录并重建它们。我这样做了。

这三件事都没有奏效。有没有人有任何进一步的建议?谢谢。

4

1 回答 1

1

看来您的软件包有问题。我看到应用程序包被声明为com.androidcalc,但您要实例化的类是com.calc.AndroidCalc. 所以我认为实际的类名和声明的名称不匹配。这意味着您应该:

  • 检查项目中的包名并将其更改为com.androidcalccom.calc
  • 检查 AndroidManifest.xml 并在应用程序和活动声明中将包设置为完全相同的内容。
于 2013-06-29T07:59:37.370 回答