我在应用程序的
string.xml
中声明了一个长字符串。
这样声明
<string name="terms">PLEASE READ THESE TERMS OF USE CAREFULLY BY ACCESSING THIS .................</string>
但这会出现以下错误:
error: Apostrophe not preceded by \ (in PLEASE READ THESE TERMS OF USE CAREFULLY
发布完整的字符串。不过,我的猜测是您的字符串中有一个撇号(')字符。将其替换为 (\') 即可解决问题。例如,
//strings.xml
<string name="terms">
Hey Mr. Android, are you stuck? Here, I\'ll clear a path for you.
</string>
参考:
strings.xml中的撇号应写为
\'
strings.xml 中的这个字符串有错误,我修复了它。
<item>Most arguments can be ended with three words, "I don\'t care".</item>
在这里您可以看到我的应用程序使用该代码正确构建。
https://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling
转义撇号和引号
如果字符串中有撇号或引号,则必须将其转义或将整个字符串括在其他类型的引号中。例如,以下是一些有效和无效的蜇伤方法:
<string name="good_example">"This'll work"</string>
<string name="good_example_2">This\'ll also work</string>
<string name="bad_example">This doesn't work</string>
<string name="bad_example_2">XML encodings don't work</string>
(?<!\\)'
搜索未转义的撇号。 它找到前面没有反斜杠的撇号。
我再次搜索了 char ' 并将 char ' 替换为 \'(英文写作),因为它显示从右到左,所以看起来像 strings.xml 中的 '\ !!
问题解决了。
'
转义
\'
的最佳答案是有效的,但我不喜欢这个解决方案,因为当使用将所有内容替换为
'
到
\'
时,它只能工作一次。第二次你会留下
\\'
。因此,请使用:
\u0027
。
1. 错误:字符串中未转义的撇号
我发现 AAPT2 工具有时会指向 xml 中的错误行。 所以你应该更正整个 strings.xml 文件在 Android Studio 中,在问题文件中使用:
编辑->查找->替换
然后在第一个字段中写入\'(或\&、>、\
第二个输入 '( 或 &,>,<,\")
然后根据需要替换每个。(或“reptlace all”以防万一带有')<,")
然后在第一个字段中再次输入 '( 或 &,>,
然后在第二个地方写\'<,")
然后根据需要替换每个。(或“替换全部”,如果有')
2。对于其他有问题的符号
我常常评论下半部分+重建
直到我找不到错误的标志为止。
Ctrl + F [在搜索字段中输入撇号] '
ex. Normal sentence: I 'll don't make cry anyone.
Solution sentence : I \'ll don\'t make cry anyone.