R.java was modified manually! Reverting to generated version!

jia635發表於2014-04-07

進入 eclipse後clipse Menu > Projects > clean
這麼做就把R檔案刪了,但是別擔心,重新整理專案,R檔案會自動更新的。如果不更新的話一定是程式中有錯誤,一般情況下是命名問題。

我遇到的情況是:(1)不同的layout xml檔案中控制元件命名衝突(我當時就是直接複製的)。只要把相關的控制元件命名區別開來,重新整理專案,R檔案就會自動生成。

(2)而且相關的目錄檔案不能刪除,res資料夾中只能包含資料夾,不能有檔案或圖片存在。

不管怎麼樣,只要res檔案沒有錯誤,R檔案會自動生成。

 

Android 在開發中會自動生成一個 R.java 檔案,這個檔案是自動生成的,最好不要去改。不過有時候這個 java 檔案會跟我們捉迷藏,在程式中 R.xx.xxx 會出現經常報錯現象。其實只要對著工程點選滑鼠右鍵 選擇Build Project,R.java 檔案又回來。這樣R.xx.xxx 就能 X 的出來了。

 匯入其他Android時出錯分析

  近幾天學習android ,學習時候難免要匯入一些示例,目的為了更加了解android各種API用法,順便也可以學習下別人程式碼的寫法。可是匯入android原始碼後,基本都有錯誤,R.java也不會自動生成,因為是第一次匯入工程,工程有錯R.java就不會自動生成了,工程有錯誤,當然模擬器就不能啟動,也就看不到效果。隨後網上找各種解決方法,網上解決方法主要有這幾種
 
1、選擇選單  Project >> Clean ,前提是勾選上 Bulid Automatically(自動構建部署) ,點Clean後會重新構建專案,因為一般情況下,R.java檔案在這個時候會重新更新生成一邊,如果工程有錯,就不會自動生成。

Bulid Automatically設定:window->preferences->workspace下
2、選擇工程,右鍵 Android Tools >> Fix Project Properties 這個操作有時候可以修正一些錯誤,但我的不行。
3、還有的說法是重新建一個空的工程,然後把這裡面的程式碼,資原始檔按照對應的包路徑什麼的拷進去,然後重新生成一邊,這種方法,也想當於是第一種方法,都是重新構建部暑,性質一樣的。

   以上幾種方法都試了,R.java依舊沒出現,整個工程還是一大堆錯誤。隨便點了一個有錯誤的佈局XML檔案,看到這樣一個錯誤程式碼android:layout_height="match_parent" , 之前我都用1.5/1.6/2.1 版本的SDK layout_height裡面沒有看到match_parent這個屬性,然後問群一個兄弟說這個屬性是2.X版本的,想了下,是不是因為工程的SDK版本和eclipse預設的SDK版本問題呢,於是選擇工程,右鍵 Properties >> Android 然後看到右邊的一塊 Target Name, 我的是選中 Android 1.5,然後換了一個 2.1 的 ,點選Appply ,工程自動構建,看到錯誤少了一些,換到2.2,重新構建,錯誤沒了,久未解決的問題解決了,R.java也出來了,一個字高興啊,啟動模擬器一切正常。

  總結下當匯入其它原始碼時候,首先要保證原始碼的SDK版本和你eclipse預設版本是否一致。
檢視原始碼版本辦法:開啟default.properties 檔案,看target=android-7 這後面這個數是多少。
版本對應關係:target=android-3 <---> android 1.5  ,target=android-4 <---> android 1.6 ,
target=android-7 <---> android 2.1  ,target=android-8 <---> android 2.2 其它的自己測試下。

一張圖片的名字中有一個空格,原來在android資原始檔中規定圖片檔案的名字中不能有大寫字母 、第一個符號不能是數字。有時檔案出錯,把檔案刪除,然後重新匯入可能就解決問題了

相關文章