Android 撇号前面没有\

Android 撇号前面没有\,android,xml-parsing,Android,Xml Parsing,我在android应用程序中定义了一个字符串: “{string}”出现{times} 这就产生了错误:撇号前面没有\(在{string}中,{times}出现) 我尝试了很多方法来解决这个问题: <string name="search_occurs">\'{string}\' occurs {times}</string> <string name="search_occurs">&apos;{string}&apos; occurs {t

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

“{string}”出现{times}

这就产生了错误:撇号前面没有\(在{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>
\{string}\'出现{times}
&载脂蛋白;{string}&apos;发生{次}

我无法摆脱这个错误。我遗漏了什么?

为什么不用替换字符串提供

你也知道这样的构造吗

<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>
介于%1$d和%2$d之间
%1$d\'%2$d英尺
%s mi

这两种方法都应根据以下条件工作:

\{string}\'出现{times}
“{string}”出现{times}”

只需将\before'放在字符串中即可 这是假的 这是真的:)

回答 替换“by\”有一个通用的解决方案,您必须将文本复制到word编辑器(如Notepad++)中,然后使用程序中的“replace”选项将整个“s”替换为\。
(因为我没有足够的声誉,我不得不在回答中写下它,对不起!)

这个错误是由字符串中使用的撇号引起的


将撇号替换为“仅此而已”

我根据我的场景得到了解决方案

  • 选择string.xml文件
  • 右键单击并打开“在资源管理器中显示”
  • 编辑string.xml文件中的行并保存代码
  • 重新打开Android studio并刷新解决方案
  • 现在代码将运行

    注意:我在不能上使用撇号时出错。所以我变成了不能。现在,我的方案将起作用。

    将撇号(')替换为(\') 或 在每个(')之前添加\


    注意:仅复制内部()文本

    请确保您正在编辑正确的文件。如上所述,当您收到错误时,Android Studio会打开一个
    values.xml
    文件,该文件看起来与您的原始文件类似。您必须将
    \
    添加到原始
    strings.xml
    文件中(或任何有问题的字符所在的位置)。否则它只会不断重复错误。

    \'
    对我很有效。刚刚在Eclipse中尝试过。在我在撇号前面添加了反斜杠之后,有必要清理整个Eclipse项目,以停止抱怨错误。第一个对我有效,而不是测试第二个。这两项工作都应该做得很好,而且在这两种情况下,android studio在构建之前都会修剪引号和反斜杠,而且它会将\u0027转换为单引号,然后显示错误。有没有更干净的方法可以做到这一点?我正在将我的应用程序本地化为法语,我的字符串文件夹包含大量文本。所以通读所有的文本并加上反斜杠显然不是最好的主意。不,这是唯一的办法。@the_Martian我也有同样的问题,你有没有找到一种不同于建议的方法?
    <string name="search_occurs">\'{string}\' occurs {times}</string>
    <string name="search_occurs">"'{string}' occurs {times}"</string>