天天看點

android 無法生成R檔案的原因剖析

android 無法生成R檔案 是件痛苦的事情,即使有時候你xml檔案沒有錯誤,他都無法生成。針對此問題,我總結以下幾個方面的原因。

一.xml本身有錯誤

R.java這個檔案是會自動生成的,但是如果你不小心xml檔案寫錯了,或者不小心在編輯xml的時候點選了run(其實這個時候會運作這個xml檔案,會生成一個同名的xml檔案,字尾為xx.out.xml),然後正巧你遊clear了一下項目,你可能會發現gen下面的R.java的檔案沒有了,這個在剛開始的時候很氣人,真不知道怎麼解決,後來發現,隻要xml檔案有問題,系統是絕對不會給你自動生成這個R.java檔案,因為他要參照你的每張xml裡的資料來生成R.java,是以自然就生成不了了。雖然知道了原因但是問題頭疼,假如項目的layout xml檔案有幾十個,這個時候怎麼辦,難道要一個一個xml的看嗎,呵呵,其實也不是,把console中的資訊clear一下,然後再clear項目一下,這個時候,console中會有很多紅色的資訊,參照這個肯定能準确的找到哪個檔案報錯了。

 下面這個事誤運作了xml檔案,可以看到gen的包不是空的,R.java檔案也存在,并且明确的支出了是layout包中的錯誤

二。編碼格式不正确

有時候由于編碼格式問題,造成無法生成R檔案,此時後,把編碼格式變成utf-8即可

三,不知何種原因,可能是配置問題(轉義字元的問題).

一般來說,Android項目是的R檔案是由系統生成的資源的定義,但是偶爾會出現R檔案不同步或是丢失的情況.

不同步的情況,即在RES檔案裡面已經存在了一項,但是在R.java檔案中卻還沒有定義,

這裡可以點選,Project->Clean, 選擇項目,然後選中"Start a build immediately",即可重建R檔案.

如果R檔案丢失,一般網上的推薦的方法是,右鍵項目檔案,點選"Android Tools"->"Fix project properties".

但是有時這種方法也不可用,那就要重新檢查一下RES檔案夾裡面的XML資源檔案是否用了轉義字元.

使用我在string裡面定義了一個名為"str"的字元串常量,如果在常量值裡面使用轉義(非法)字元,編譯的時候

就會出現R檔案丢失的情況.

常用到的需要轉義的字元有:<>&"'等,有興趣的可以參考一下網上的文章,下面給出常用的轉義後的編碼:

轉義字元   實際符号  名稱

<         <            小于号

>        >            大于号

&    &            和

'    '             單引号

"    "             雙引号

注意轉義字元後面的分号(;)不可省略!

 這就是我總結無法生成r檔案的情況。

上一篇: BezierString

繼續閱讀