Android报错:AAPT: error: unescaped apostrophe in string;Multiple substitutions specified in non-positi

一、AAPT: error: unescaped apostrophe in string

报错原因分析

做国际化多语言功能时,我在arrays.xml文件中定义了一些字符串如下

<item>My name's Lisa</item>

报错翻译过来是字符串未替换的撇号
于是我思考可能是'导致的报错,于是我把上述代码替换为下面的代码报错就解决了。

<item>My name&quot;s Lisa</item>

报错解决

  • 撇号'可用&quot;替换,如:<item>My name&quot;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编码
&&amp;
>&gt;
<&lt;
>&gt;
"&quot;
>&gt;
半个空白位ensp;
一个空白位&emsp;
>&gt;
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值