撇号之前没有\

时间:2013-03-29 14:49:13

标签: android xml-parsing

我在Android应用程序中定义了一个字符串:

<string name="search_occurs">'{string}' occurs {times}</string>

这给出了错误:撇号前面没有\('{string}'出现{times})

我已经尝试了很多方法来解决这个问题:

<string name="search_occurs">\'{string}\' occurs {times}</string>
<string name="search_occurs">&apos;{string}&apos; occurs {times}</string>
<string name="search_occurs"><![CDATA['{string}' occurs {times}]]></string>
<string name="search_occurs"><![CDATA[\'{string}\' occurs {times}]]></string>

我无法摆脱错误。我错过了什么?

8 个答案:

答案 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)

我根据自己的情况得到了解决方案。

  1. 选择您的string.xml文件
  2. 右键单击并在资源管理器中打开显示
  3. 编辑string.xml文件中的行并保存代码。
  4. 重新打开Android工作室并刷新解决方案。
  5. 现在代码将运行。

    注意:我在无法上使用Apostrophe时遇到错误。所以我换成不能。现在我的方案将有效。