我在Android应用程序中定义了一个字符串:
<string name="search_occurs">'{string}' occurs {times}</string>
这给出了错误:撇号前面没有\('{string}'出现{times})
我已经尝试了很多方法来解决这个问题:
<string name="search_occurs">\'{string}\' occurs {times}</string>
<string name="search_occurs">'{string}' occurs {times}</string>
<string name="search_occurs"><![CDATA['{string}' occurs {times}]]></string>
<string name="search_occurs"><![CDATA[\'{string}\' occurs {times}]]></string>
我无法摆脱错误。我错过了什么?
答案 0 :(得分:93)
这些应该根据http://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling:
工作<string name="search_occurs">\'{string}\' occurs {times}</string>
<string name="search_occurs">"'{string}' occurs {times}"</string>
答案 1 :(得分:46)
在你的字符串中放入\之前 这是假的 这是真的:)
答案 2 :(得分:3)
为什么不向'
提供替换它的字符串?
你也知道像这样的结构吗?
<string name="profile_age_range_text_between">between %1$d and %2$d</string>
<string name="unit_height_inches">%1$d\'%2$d ft</string>
<string name="unit_distance_miles">%s mi</string>
答案 3 :(得分:2)
用( \')替换撇号(') 要么 在每个(')
之前添加\注意:仅在()文本内复制
答案 4 :(得分:2)
确保您正在编辑正确的文件。正如this answer所述,当您收到错误时,Android Studio会打开一个values.xml
文件,该文件与原始文件类似。您必须在原始\
文件中(或在有问题的字符所在的位置)添加strings.xml
。否则它将继续重复错误。
答案 5 :(得分:0)
回答https://stackoverflow.com/users/3339394/the-martian 有一般解决方案替换'by',你必须将文本复制到一个文字编辑器(如Notepad ++),然后使用程序中的“替换”选项替换整个'\'。 (因为我没有足够的声誉,我不得不写下答案对不起!)
答案 6 :(得分:0)
此错误是由字符串中使用的撇号引起的
用'全部替换撇号
答案 7 :(得分:-1)
我根据自己的情况得到了解决方案。
现在代码将运行。
注意:我在无法上使用Apostrophe时遇到错误。所以我换成不能。现在我的方案将有效。