一、AAPT: error: unescaped apostrophe in string
报错原因分析
做国际化多语言功能时,我在arrays.xml文件中定义了一些字符串如下
<item>My name's Lisa</item>
报错翻译过来是字符串未替换的撇号 于是我思考可能是' 导致的报错,于是我把上述代码替换为下面的代码报错就解决了。
<item>My name"s Lisa</item>
报错解决
撇号' 可用"; 替换,如:<item>My name"s Lisa</item> - 可使用双引号将字符串资源括起来,如:
<item>"My name's Lisa"</item> - 可使用转义字符在
撇号' 前,如:<item>My name\'s Lisa</item>
二、Multiple substitutions specified in non-positional format报错
报错原因分析
首先我在string.xml文件中定义了一些字符串
<string name = "upgrade_time"> 驱动板:%s\t\t信号版:%s</string>
报错翻译过来就是以非位置格式指定的多个替换,报错提示中有提到设置formatted="false" ,于是我把上述的代码改成了下面的就不会运行报错了。
<string name = "upgrade_time" formatted="false"> 驱动板:%s\t\t信号版:%s</string>
报错解决方式
查看了一些博文,且亲试了一下,有这些方式可以解决上述报错:
- 字符串中添加
formatted="false" 属性 - 用
%% 表示一个%
三、一些常用HTML特殊字符编码
在Android的xml文件中,涉及到一些特殊字符的显示可能会报错的,需要用HTML特殊字符去转换。
特殊符号 | HTML编码 |
---|
& | & | > | > | < | < | > | > | ’ | " | > | > | 半个空白位 | ensp; | 一个空白位 |   | > | > |
|