我正在使用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:忘记提及我已经检查了Manifest文件的不一致。问题现在发生在我甚至没有重命名的类上。可以成为自动重构重命名的一部分吗? (纯粹猜测)
编辑2:SherlockListActivity问题。说无论我做了什么重构,它都找不到APK。当我删除SherlockListActivity时,它解决了我的问题。
答案 0 :(得分:0)
重构名称将更改java类中的class
名称,但不会更改manifest
文件中的名称。
尝试更改AndroidManifest.xml
中的班级名称,这样可以解决问题
答案 1 :(得分:0)
只需检查其他活动,他们的名字和包裹在清单中是否正确,您就可以去了。
<activity android:name="com.raman.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER">
</intent-filter>
</activity>
答案 2 :(得分:0)
你需要检查的一些事情。那些是:
如果问题没有解决,请执行文件 - &gt;无效缓存/重启。希望问题将解决。
如果问题未解决,请删除构建文件夹并重建项目。现在你的问题就解决了。 谢谢:)