天天看点

【安卓学习之常见问题】 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