2019年11月5日 更新
之前處理這個問題的時候就有疑惑,我另一個項(xiàng)目在xml文件中寫幾個中文都沒問題,但是這個就不行。今天又嘗試了一下把出問題的文件更換編碼格式富纸,沒更改之前是utf-8,嘗試過了utf-8 bom旨椒、gbk都不行胜嗓,最后詳細(xì)比對了一下兩個項(xiàng)目,終于發(fā)現(xiàn)了不同之處钩乍,在出問題的項(xiàng)目中g(shù)radle.properties文件里 少了一句“-Dfile.encoding=UTF-8”? 辞州,它的作用是設(shè)置系統(tǒng)默認(rèn)字符集,這個設(shè)置在jvm啟動時就決定了寥粹。
=============end=================
更新同事的代碼变过,編譯不通過埃元,報了這個錯誤。錯誤里也沒有具體的錯誤位置媚狰,在更新的文件中有一個在xml文件里使用漢字的地方岛杀,當(dāng)時是這樣寫的“ android:text="@{VM.entity.title,default=鮮羊肉}" ”,機(jī)智如我一下就看出了問題崭孤,因?yàn)槲抑霸趚ml里使用過中文类嗤,所以知道這樣寫是不行的,正確的寫法應(yīng)該是“?android:text='@{productVM.entity.title,default="鮮羊肉"}'?”辨宠,用單引號包裹表達(dá)式遗锣,然后用雙引號包裹中文。機(jī)智的我改完之后重新編譯嗤形,what精偿?還是沒通過?難道還有別的地方使用的中文赋兵,查找一番發(fā)現(xiàn)只有這個地方用了笔咽,很是奇怪。之后沒辦法只能用了土辦法霹期,二分文件查找叶组,把更新的文件一點(diǎn)一點(diǎn)重新加進(jìn)來,最后發(fā)現(xiàn)問題還是處在這個“鮮羊肉”上历造。
這個“鮮羊肉”有點(diǎn)奇葩扶叉,我換成別的文字就沒事,用它就不行帕膜,并且這段代碼在我同事電腦上也是可以編譯通過的。
最后沒辦法只能向“鮮羊肉”妥協(xié)溢十,換成了別的內(nèi)容垮刹。
最后的建議,把中文字符串放到string.xml中引用或者在entity中處理好张弛。