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檔案丢失的情況.
常用到的需要轉義的字元有:<>&"'等,有興趣的可以參考一下網上的文章,下面給出常用的轉義後的編碼:
轉義字元 實際符号 名稱
&lt; < 小于号
&gt; > 大于号
&amp; & 和
&apos; ' 單引号
&quot; " 雙引号
注意轉義字元後面的分号(;)不可省略!
這就是我總結無法生成r檔案的情況。