2

我正在使用Eclipse IDE創建符合Android 2.2和更高版本的Android應用程序。我重構了我主要活動之一的名字。我的基本結構是,我有一個僞主頁活動,在這個應用程序內的其他「應用程序」(實際上是活動)具有導致其各自活動的圖標。我有一個類,最初是應用程序中這些分支之一的頭部活動,稱之爲Activity.java。 Activity.java最終只是指向了Activity_Home.java並且不再做任何事情,所以我決定擺脫它。我刪除了Activity.java,重建,然後重構Activity_Home.java到Activity.java,重建。有一個NoClassDefFoundError的:重構名稱後的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時,它修復了我的問題。

+1

如果你使用eclipse,請嘗試清潔項目。項目 - >清除。有時這個問題是由這個問題解決的。 – 2013-05-01 14:28:34

+0

嘗試一下'Markers'視圖(標籤),在那裏,你可以檢查所有錯誤和警告。 Android操作系統非常擅長檢測運行時潛在的問題。 – gaborsch 2013-05-01 14:35:58

回答

0

重構名稱將更改java類中的class名稱,但不會更改manifest文件中的名稱。

嘗試在AndroidManifest.xml也改變類的名稱,這將解決這個問題

0
  1. 您最初有一個文件Activity.java它什麼也沒做,但指出Activity_home.java。 從指向,我認爲它打開Activity_home.java。每當你創建一個Activity時,它的條目都會添加到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> 
0

有些事情你必須檢查。它們是:

  1. 從menifest.xml和build.gradle這兩個文件中檢查您的應用的軟件包名稱。
  2. 使用完整路徑檢查清單活動名稱。如果活動路徑不正確,則更正它。
  3. 如果問題沒有解決,則執行File - > Invalidate Cache/Restart。希望問題將解決。

  4. 如果問題不解決,然後刪除構建文件夾並重建項目。現在你的問題將解決。 謝謝:)