Errore nel file strings.xml in Android

Ho dichiarato una stringa lunga in string.xml di un’applicazione.

Dichiarato come questo

 PLEASE READ THESE TERMS OF USE CAREFULLY BY ACCESSING THIS ................. 

Ma questo dà il seguente errore:

 error: Apostrophe not preceded by \ (in PLEASE READ THESE TERMS OF USE CAREFULLY 

Solutions Collecting From Web of "Errore nel file strings.xml in Android"

pubblica la tua stringa completa. Comunque, suppongo che ci sia un carattere di apostrofo (‘) nella tua stringa. sostituirlo con (\ ‘) e risolverà il problema. per esempio,

 //strings.xml  Hey Mr. Android, are you stuck? Here, I\'ll clear a path for you.  

Rif:

http://www.mrexcel.com/forum/showthread.php?t=195353

https://code.google.com/archive/p/replicaisland/issues/48

Soluzione

Gli apostrofi nel file strings.xml devono essere scritti come

 \' 


Esempio

Nel mio caso ho avuto un errore con questa stringa nel mio strings.xml e l’ho risolto.

 Most arguments can be ended with three words, "I don\'t care". 

Qui vedi che la mia app si costruisce correttamente con quel codice.

inserisci la descrizione dell'immagine qui

Ecco la stringa vera nella mia app.

inserisci la descrizione dell'immagine qui

Devi mettere \ prima di un apostrofo. In questo modo, controlla anche che tu stia modificando strings.xml e non values.xml (Android Studio ti indirizza a questo file quando mostra l’errore). Perché se modifichi values.xml e provi a compilare di nuovo, l’errore persiste. Questo mi stava succedendo di recente.

https://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling

Escaping apostrofi e citazioni

Se si dispone di un apostrofo o di una citazione nella stringa, è necessario evitarla o racchiudere l’intera stringa nell’altro tipo di virgolette racchiuse. Ad esempio, ecco alcune punture che funzionano e non funzionano:

 "This'll work" This\'ll also work This doesn't work XML encodings don't work 

Uso l’ebraico (linguaggio RTL) in strings.xml. Ho cercato manualmente il file string.xml per questo char: ‘di quanto ho aggiunto il carattere di escape \ infront (ora sembra \’) e ho ancora lo stesso errore!

Ho cercato di nuovo il char ‘e ho sostituito il char’ con \ ‘(eng writing), dal momento che mostra un diritto a sinistra sembra che’ \ nel file strings.xml !!

Problema risolto.

Potresti essere in grado di utilizzare unicode equivalente sia apostrofo che altri caratteri che non sono supportati nella stringa xml. L’equivalente di Apostrophe è “\ u0027”.

1. per errore: apostrofo senza escape nella stringa

quello che ho trovato è che lo strumento AAPT2 punta alla riga sbagliata in xml, a volte. Quindi dovresti correggere l’intero file strings.xml

In Android Studio, nel file problematico, utilizzare:

Modifica-> Trova-> sostituire

Quindi scrivi nel primo campo \ ‘(o \ &,>, \ < , \ ")
in seconda posizione ‘(o &,>, < , ")
quindi sostituirli ciascuno se necessario. (oppure “reptlace all” nel caso con ‘)
Quindi nel primo campo ripeti ‘(o &,>, < , ")
e nel secondo scrivi \ ‘
quindi sostituire ciascuno se necessario. (o “Sostituisci tutto” nel caso con ‘)

2. per altri simboli problematici
Io uso per commentare ciascuna parte successiva della seconda parte + ricostruzione fino a quando non troverò il segno sbagliato.

Ad esempio una parola di escape “\ update” rilascia in modo imprevisto tale errore 🙂

Dov’è il tuo apostrofo usato stringa? Non riesco a trovarlo. per favore postalo. Se hai bisogno di usare un apostrofo nella tua stringa, usa semplicemente la sequenza di escape “\” “come questa.

did not = didn \ ‘t in XML, basta guardare l’ultimo elemento di strings.xml.

inserisci la descrizione dell'immagine qui

Penso che l’immagine sopra chiarirà i tuoi dubbi.