天天看點

【安卓學習之常見問題】 strings.xml 提示 The entity name must immediately follow the '&' in the entity referen 錯誤

通過Eclipse 添加一個字元串檔案strings.xml:

【安卓學習之常見問題】 strings.xml 提示 The entity name must immediately follow the '&' in the entity referen 錯誤

1.問題描述

  • Error in an XML file: aborting build.
  • The entity name must immediately follow the ‘&’ in the entity reference.

PS: 很明顯地指出了 使用 ‘&’ 導緻 出錯

2.分析原因:

  • 在string.xml中如果想要顯示特殊字元,如空格号、換行等字元,需要用到轉義字元(如/n 代表換行)或者UNICODE編碼(如\u00A0表示空格)來替代,前者可能相容性沒有那麼好,通常使用後者,比較通用性,而且支援的字元集也更多
  • 另外從網上搜尋了點資料,可以作為參考
【在android的項目中要在string.xml 中顯示特殊符号】
在android的項目中要在string.xml 中顯示特殊符号、如@号冒号等、直接寫
有時候不行,那麼可以考慮使用ASCII碼進行顯示、在XML中空格符不是用HMTL中的表示、而是用編碼表示
 以上摘自:http://blog.csdn.net/wh_19910525/article/details/48088307
           
【我的Android進階之旅------>android中一些特殊字元(如:←↑→↓等箭頭符号)的Unicode碼值】
在項目中,有時候在一些控件(如Button、TextView)中要添加一些符号,這個時候可以使用圖檔的方式來顯示,不過這些可以直接使用Unicode碼就直接顯示出來了。
從網上找到了部分關于特殊符号的Unicode碼值,記錄下來,以備後用,如下所示:  
用Android的string.xml中使用Unicode表示符号的話,就使用下面的JS相關的Unicode值即可
 以上摘自:http://m.blog.csdn.net/article/details?id=
           

是以這邊的錯誤提示,是因為字元串【&# 160;&# 160;&# 160;&# 160;&# 160;Sms & Arama&# 160;&# 160;&# 160;&# 160;&# 160;】中的【Sms & Arama】中的【 & 】出現問題

PS:其中【&# 160】表示的是 ” “,即一個空格 的字元串意思,最終也是以一個空格顯示出來

3.解決方法:

  • 直接将 & 替換成 &#38
    【安卓學習之常見問題】 strings.xml 提示 The entity name must immediately follow the '&' in the entity referen 錯誤
  • 也可以将 & 替換成 & amp; 或者 \u0026 或者 \0026 (未測試,可以自己測試下,至少編譯不會出錯,呵呵)
    【安卓學習之常見問題】 strings.xml 提示 The entity name must immediately follow the '&' in the entity referen 錯誤
    【安卓學習之常見問題】 strings.xml 提示 The entity name must immediately follow the '&' in the entity referen 錯誤
    4.再出個題:
    【安卓學習之常見問題】 strings.xml 提示 The entity name must immediately follow the '&' in the entity referen 錯誤
    以上是什麼問題導緻的?

其實這個題目有2個解決方案,其中一個就是本篇講到的内容,還有一個方案就是 jdk的版本問題。

5.附上表格:

關于unicode編碼都是/u開頭,網上可以直接線上工具

關于轉義字元,可以看下以下表格:

【安卓學習之常見問題】 strings.xml 提示 The entity name must immediately follow the '&' in the entity referen 錯誤

轉載請注明出處:http://blog.csdn.net/ljb568838953/article/details/52527872