撇号之前没有\

我有一个android应用程序中定义的string:

<string name="search_occurs">'{string}' occurs {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> 

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

这些都应该根据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> 

只是把\之前'在你的string这是假的这是真的:)

你为什么不提供'用你replace的string'

你也知道这样的构造?

 <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> 

用( \ )replace您的撇号( ' )或在每(')前加\

注意:只复制里面的()文本

确保您正在编辑正确的文件。 正如这个答案所指出的那样,当你得到这个错误时,Android Studio会打开一个与你的原始文件类似的values.xml文件。 您必须在原始的strings.xml文件(或任何有问题的字符)中添加\ 。 否则,它会继续重复错误。

在回答https://stackoverflow.com/users/3339394/the-martian有一个通用的解决scheme来replace\'你必须将文本复制到一个文字编辑器(如记事本++),然后通过使用“在程序中replace“选项全部replace为”\“。 (因为我没有足够的声誉,我不得不把它写在一个答案抱歉!)

此错误是由string中使用的撇号造成的

用“这就是全部”代替撇号

我根据我的情况得到了解决scheme。

  1. select你的string.xml文件
  2. 在浏览器中右键单击并打开显示
  3. 编辑string.xml文件中的行并保存代码。
  4. 重新打开Android工作室并刷新解决scheme。

现在代码将运行。

注意:我在使用撇号时遇到了错误。 所以我改变成不能 。 现在我的scheme将起作用。