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文件的情況。