Android 使用带%、$和/和格式的strings.xml

Android 使用带%、$和/和格式的strings.xml,android,xml,string,Android,Xml,String,我将这一行添加到了我的strings.xml中,它不会编译成R。 列表版本:%1$s\n作者:%2$s\n创建的数据:%3$s\n语言:%4$s 我得到的错误是: 错误:以非位置格式指定了多个替换;您的意思是添加formatted=“false”属性吗? 错误:意外的结束标记字符串 我想问一下如何实现这一点(稍后我将使用string.format) “formatted=false”与不添加它/将它添加为true相比有什么作用 编辑: 清理和构建是我得到这个错误的原因。我得到了很多次。 但后来我

我将这一行添加到了我的strings.xml中,它不会编译成R。
列表版本:%1$s\n作者:%2$s\n创建的数据:%3$s\n语言:%4$s

我得到的错误是:

错误:以非位置格式指定了多个替换;您的意思是添加formatted=“false”属性吗? 错误:意外的结束标记字符串

我想问一下如何实现这一点(稍后我将使用string.format) “formatted=false”与不添加它/将它添加为true相比有什么作用

编辑: 清理和构建是我得到这个错误的原因。我得到了很多次。 但后来我删除了一个空行,并清理和重建一切都很好。 这真的是不一致的,我不知道是什么原因首先导致了问题

还有两个问题:

  • 还有人能告诉我“格式化=错误”有什么区别吗 制造
  • 我是如何得到这种行为的?(在没有错误时报告错误,我试图通过炸毁东西和制造混乱来修复它)

这不是我唯一一次出错,然后它神奇地自行修复。有时我会重新启动adt,它会自行解决,但这次不是很遗憾。

如果您添加了
formatted=false
,那么字符串资源中的格式说明符(
%
$
等)将被禁用,格式化程序将无法识别它们。肯定会帮你的


对于第二个问题,并没有确切的解决方案,但我所做的是删除gen和bin文件夹,然后清理构建项目。每次构建项目时,android都会检查是否有可用的新资源,并将其添加到R.java中,然后才能使用它。

您发布的XML没有问题。您确定这就是产生错误消息的那个吗?另外,如果错误是以前版本的XML.CleanBuild文件遗留下来的,请尝试清理项目。拉阿尔托是对的。您的字符串资源有效。没有显示任何错误。谢谢!他们提供了帮助。我现在可以回到编码了。谢谢你的回答。你得到奖牌了!