Android string.xml 文件中输入%号编译时报错如下:
Error:(2820) Multiple substitutions specified in non-positional format; did you mean to add the formatted=”false” attribute?
我需要显示的文本效果
卡夫卡4%,你4%回来;
报错案例
<!-- 报错 -->
<string name="test">卡夫卡4%,你4%回来;</string>
<string name="test1">卡夫卡4\%,你4\%回来;</string>
<string name="test3">卡夫卡4/%,你4/%回来;</string>
<string name="test21">卡夫卡4\%,你4\%回来;</string>
<string name="test23">卡夫卡4/%,你4/%回来;</string>
下面的都不报错:name=”test03”实现的效果是
卡夫卡4%%,你4%%回来;
<!-- 不会报错 -->
<string name="test01">测试%1$d元%2$d元;</string>
<string name="test02">测试12%;</string>
<string name="test03">卡夫卡4%%,你4%%回来;</string>
正确的写法
<string name="test31" formatted="false">卡夫卡4%d,你4%d回来;</string>
问题分析:
原因是在一个string 标签的子文本标签中检测到了多个%号没有指定特殊格式所导致的。
解决方案就是在name属性旁边加上formatted=”false”;
<string name"test" formatted="false"></string>