Java 重构名称后出现NoClassDefFoundError

Java 重构名称后出现NoClassDefFoundError,java,android,eclipse,actionbarsherlock,noclassdeffounderror,Java,Android,Eclipse,Actionbarsherlock,Noclassdeffounderror,我正在使用EclipseIDE创建一个符合Android2.2及更高版本的Android应用程序。我重构了我的一个主要活动的名称。我的基本结构是,我有一个伪主页活动,其中这个应用程序中的其他“应用程序”(实际上是活动)具有指向各自活动的图标。我有一个类,最初是应用程序中这些分支之一的head活动,称之为activity.java。java最终只是指向Activity_Home.java,不再做任何事情,所以我决定将其删除。我删除了Activity.java,重新构建,然后将Activity_Ho

我正在使用EclipseIDE创建一个符合Android2.2及更高版本的Android应用程序。我重构了我的一个主要活动的名称。我的基本结构是,我有一个伪主页活动,其中这个应用程序中的其他“应用程序”(实际上是活动)具有指向各自活动的图标。我有一个类,最初是应用程序中这些分支之一的head活动,称之为activity.java。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。在每次尝试发射前,彻底清洁和重建。尽管我检查了类路径,并且.class文件的命名正确,但仍然不断收到错误。最后我读到有人,虽然他们不知道为什么这样做有效,但通过删除和重新创建文件修复了类似的问题。我做到了

这似乎奏效了,但我不知道为什么,现在比Activity_Home.java更深的每个文件(例如,有一个名为Activity_Camera.java的活动)都有相同的问题

很明显,我不想删除和重做所有的.java文件,即使这解决了这个问题,我仍然想知道为什么会发生这种情况,而不仅仅是如何解决它

编辑1:忘记提到我已经检查了清单文件的不一致性。这个问题现在发生在一个我甚至没有重命名的类上。可能是自动重构重命名的一部分?(纯粹的猜测)


编辑2:Sherlocklist活动的问题。说无论我做了什么重构,它都找不到APK。当我删除SherlockListActivity时,它修复了我的问题。

重构名称将更改java类中的
名称,但不会更改
清单
文件中的名称

同时尝试更改
AndroidManifest.xml
中的类名,这将解决此问题

  • 最初,您有一个文件Activity.java,它只指向Activity_home.java。 通过指向,我假设它打开了Activity_home.java。无论何时创建活动,其条目都会添加到AndroidManifest.xml文件中。但是,当您删除活动时,我认为它不会从清单文件中删除。因此,将主文件更改为MainActivity.java,并在清单中更改其相应的条目,如下所示 只需检查其他活动的名称和包在清单中是否正确,就可以开始了

     <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> 
    

    有些事情你必须检查。这些是:

  • 从menifest.xml和build.gradle两个文件中检查应用程序的包名
  • 检查清单活动名称和完整路径。如果活动路径不正确,请更正它
  • 如果问题未解决,则执行文件-->使缓存无效/重新启动。希望问题能解决

  • 如果问题没有解决,则删除生成文件夹并重新生成项目。现在你的问题就解决了。 谢谢:)


  • 如果您正在使用eclipse,请尝试清理项目。项目-->清洁。有时此问题可以通过此解决。请尝试查看
    标记
    视图(选项卡),在那里可以检查所有错误和警告。Android操作系统非常擅长在运行时检测潜在问题。