我在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
我在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
Answers:
发布您的完整字符串。不过,我的猜测是您的字符串中有一个撇号(')字符。将其替换为(\'),它将解决此问题。例如,
//strings.xml
<string name="terms">
Hey Mr. Android, are you stuck? Here, I\'ll clear a path for you.
</string>
参考:
<string name="good_example">"This'll work"</string>
:参考developer.android.com/guide/topics/resources/...
您必须在撇号前加\。像这样\',还要检查您是否正在编辑strings.xml而不是values.xml(在显示错误时android studio会将您定向到该文件)。因为如果您编辑values.xml并尝试再次编译,该错误仍然存在。这是最近发生在我身上的事情。
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>
我在strings.xml中使用希伯来语(RTL语言)。我已经在string.xml中手动搜索了这个char:“比我在它的前面添加了转义char \(现在看起来像\'),仍然出现相同的错误!
我再次搜索了char',然后用\'(英语写作)替换了char',因为它显示了从右到左的样子,它看起来像是strings.xml中的'\!
问题解决了。
1.错误:字符串中未转义的撇号
我发现,AAPT2工具有时指向xml中的错误行。因此,您应该更正整个strings.xml文件
在Android Studio中,在问题文件中使用:
编辑->查找->替换
然后
在第二个位置'(或&,>,<,“)的第一个字段\'(或\&,>,\ <,\”)中写入,然后在
需要时替换每个字段。 ),
然后在第一个字段中再次放置'(或&,>,<,“)
,然后在第二个字段中写\',
然后根据需要替换每个。(或在替换为'的情况下“全部替换”)
2.对于其他有问题的符号,
我会在下半部分每隔+ rebuild注释一次,直到我找不到错误的符号为止。
例如,转义的单词“ \ update”意外删除了此类错误:)