Ich habe eine lange Zeichenfolge in string.xml
einer Anwendung deklariert .
So erklärt
<string name="terms">PLEASE READ THESE TERMS OF USE CAREFULLY BY ACCESSING THIS .................</string>
Dies führt jedoch zu folgendem Fehler:
error: Apostrophe not preceded by \ (in PLEASE READ THESE TERMS OF USE CAREFULLY
Antworten:
poste deinen kompletten String. Ich vermute jedoch, dass Ihre Zeichenfolge ein Apostroph (') enthält. Ersetzen Sie es durch (\ ') und das Problem wird behoben. beispielsweise,
Ref:
http://www.mrexcel.com/forum/showthread.php?t=195353
https://code.google.com/archive/p/replicaisland/issues/48
quelle
<string name="good_example">"This'll work"</string>
Referenz: developer.android.com/guide/topics/resources/…Lösung
Apostrophe in der Datei strings.xml sollten wie folgt geschrieben werden
Beispiel
In meinem Fall hatte ich einen Fehler mit dieser Zeichenfolge in meiner Datei strings.xml und habe ihn behoben.
Hier sehen Sie, dass meine App mit diesem Code richtig erstellt wurde.
Hier ist die aktuelle Zeichenfolge in meiner App.
quelle
Sie müssen \ vor ein Apostroph stellen. Überprüfen Sie auf diese Weise auch, ob Sie die Datei strings.xml und nicht die Datei values.xml bearbeiten (Android Studio leitet Sie zu dieser Datei weiter, wenn der Fehler angezeigt wird). Wenn Sie die Datei values.xml bearbeiten und erneut kompilieren, bleibt der Fehler bestehen. Das ist mir kürzlich passiert.
quelle
https://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling
Flucht vor Apostrophen und Zitaten
Wenn Ihre Zeichenfolge ein Apostroph oder ein Anführungszeichen enthält, müssen Sie es entweder maskieren oder die gesamte Zeichenfolge in die andere Art von einschließenden Anführungszeichen einschließen. Zum Beispiel sind hier einige Stiche, die funktionieren und nicht funktionieren:
quelle
Verwenden Sie diesen
(?<!\\)'
regulären Ausdruck für die Suche nach einem nicht entflohenen Apostroph. Es wird ein Apostroph gefunden, dem kein Backslash vorausgeht.quelle
Ich benutze Hebräisch (RTL-Sprache) in strings.xml. Ich habe die string.xml manuell nach diesem Zeichen durchsucht: 'als ich das Escape-Zeichen \ davor hinzugefügt habe (jetzt sieht es so aus \') und immer noch den gleichen Fehler erhalten!
Ich habe erneut nach dem Zeichen 'gesucht und das Zeichen' durch \ '(engl. Schrift) ersetzt, da es von rechts nach links angezeigt wird, sieht es so aus' \ in der Datei strings.xml !!
Problem gelöst.
quelle
Möglicherweise können Sie Unicode-Äquivalente sowohl für Apostrophe als auch für andere Zeichen verwenden, die in XML-Zeichenfolgen nicht unterstützt werden. Das Äquivalent von Apostroph ist "\ u0027".
quelle
1. für Fehler: nicht entflohener Apostroph in Zeichenfolge
Ich habe festgestellt, dass das AAPT2-Tool manchmal auf eine falsche Zeile in XML verweist. Sie sollten also die gesamte Datei strings.xml korrigieren
Verwenden Sie in Android Studio in der Problemdatei Folgendes:
Bearbeiten-> Suchen-> Ersetzen
Schreiben Sie dann in das erste Feld \ '(oder \ &,>, \ <, \ ")
in das zweite Feld ' (oder &,>, <,")
und ersetzen Sie jedes bei Bedarf (oder "alle neu platzieren", falls mit ' )
Geben Sie dann im ersten Feld erneut '(oder &,>, <, ") ein
und schreiben Sie im zweiten Feld \'
und ersetzen Sie jedes bei Bedarf. (Oder" Ersetzen Sie alle "im Fall von ')
2. Für andere problematische Symbole
benutze ich, um jeden nächsten halben Teil zu kommentieren + neu aufzubauen, bis ich nicht mehr das falsche Zeichen finde.
ZB ein Escape-Wort "\ update" löscht einen solchen Fehler unerwartet :)
quelle
Die beste Antwort einfach die Flucht
'
mit\'
Werken aber ich weiß nicht , wie die Lösung , denn wenn alle mit der Verwendung ersetzen'
zu\'
, es funktioniert nur einmal. Das zweite Mal wirst du übrig bleiben\\'
.Verwenden Sie daher :
\u0027
.quelle