我正在使用 Eclipse IDE 创建一个兼容 Android 2.2 及更高版本的 Android 应用程序。我重构了我的一项主要活动的名称。我的基本结构是我有一个伪主页活动,其中这个应用程序内的其他“应用程序”(实际上是活动)具有指向它们各自活动的图标。我有一个类,它最初是应用程序中这些分支之一的头活动,称为 Activity.java。Activity.java 最终只是指向 Activity_Home.java 并且不再做任何事情,所以我决定摆脱它。我删除了Activity.java,重新构建,然后将Activity_Home.java重构为Activity.java,重新构建。得到一个 NoClassDefFoundError:
05-01 10:13:12.609: E/AndroidRuntime(15635): FATAL EXCEPTION: main
05-01 10:13:12.609: E/AndroidRuntime(15635): java.lang.NoClassDefFoundError: Activity.java
因此,在摆弄了一下可能会有所帮助的想法之后,我将其重命名为 Activity_Home.java。在每次尝试启动之前彻底清理和重建。即使我检查了 CLASSPATH 并且 .class 文件的名称正确,但仍然出现错误。最终我读到有人,虽然他们不知道为什么会这样,但通过删除和重新制作文件来解决类似的问题。我这样做了。
这似乎奏效了,但我不知道为什么,现在每个比 Activity_Home.java 更深的文件(例如,有一个被它称为 Activity_Camera.java 的活动)都有同样的问题。
我显然不想删除和重新制作所有 .java 文件,即使这样可以解决问题,我仍然想知道为什么会发生这种情况,而不仅仅是如何修复它。
编辑1:忘了提到我已经检查了清单文件是否存在不一致。这个问题现在发生在一个我什至没有重命名的类上。可能是自动重构重命名的一部分吗?(纯属猜测)
编辑 2:SherlockListActivity 的问题。说在我进行任何重构之后都找不到 APK。当我删除 SherlockListActivity 时,它解决了我的问题。