我将这一行添加到我的 strings.xml 中,但它不会编译到 R 中。
<string name="cl_txt_verinfo">List Version: %1$s\nAuthor: %2$s\nDate Created: %3$s\nLanguage: %4$s</string>
我得到的错误是:
错误:以非位置格式指定的多个替换;您是要添加 formatted="false"属性吗? 错误:意外的结束标记字符串
我想问一下如何使这个工作(我稍后会使用string.format) 以及“formatted=false”做什么而不是不添加它/将其添加为 true。
编辑: 清理和构建是我得到这个错误的原因。我得到了很多次。 但后来我删除了一个空行并清理并重建一切都很好。 这真的很不一致,我不知道是什么导致了问题。
还有两个问题:
- 还有人能告诉我“formatted=false”有什么区别吗 制作?
- 我是怎么得到这种行为的?(在没有错误的情况下报告错误,我试图通过炸毁东西并制造困惑来修复它)
这不是我唯一一次遇到错误,然后它神奇地自行修复了。有时我重新启动我的 adt,它会自行解决,但遗憾的是这次不是。
最佳答案
如果您添加了 formatted=false
,那么您的字符串资源中的格式说明符(%
、$
等)将被禁用,Formatter 将不会无法识别它们。 This一定能帮到你。
对于您的第二个问题,没有确切的解决方案,但我所做的是删除 gen 和 bin 文件夹,然后清理构建项目。每次您构建项目时,android 都会检查是否有可用的新资源并将其添加到 R.java 中,只有在这之后您才能使用它。
关于android - 使用带有 %、$ 和/和格式化的 strings.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24404314/