warn: multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?

编辑strings.xml的时候

或者

提示下面的错误

出现这个错误的原因主要是因为strings字串中包含百分号(%),

有几种方式解决

1.用两个百分号表示一个百分号即

2.用转义符表示

二:无需格式化

根据错误提示可知,如果字符串无需格式化,可在<string> 标签上增加属性:formatted="false",即

三:关于上面问题的延伸

如果你需要使用String.format(String, Object...) 来格式化你的字符串,你可以把格式化参数放在你的字符串中,参见下面的例子:

在这个例子中,这个格式化的字符串有2个参数, %1$s是个字符串%2$d是个浮点数,你可以在你的程序中按照下面的方法来根据参数来格式化字符串:

目前AndroidSDK已经支持直接格式化字符串,不需要使用String.format(String, Object...) ,如下

那么根据例子上说的我需要把%s换成%1$s才行了,修改后编译通过,程序成功启动。

参考链接


发布者

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注