2013-03-29 12 views
71

ho una stringa definita in un'applicazione Android:Apostrophe non preceduto da

<string name="search_occurs">'{string}' occurs {times}</string>

Questo dà l'errore: Apostrophe non preceduta da \ (in '{string}' si verifica {volte})

ho provato un certo numero di cose per risolvere questo:

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

io non sono in grado di sbarazzarsi dell'errore. Cosa mi manca?

+6

'\ '' funziona per me. Ho appena provato in Eclipse. – CommonsWare

+4

Dopo aver aggiunto una barra rovesciata davanti all'apostrofo, si è reso necessario eseguire il comando 'Clean' e ricostruire l'intero progetto per Eclipse per interrompere la segnalazione dell'errore. – Stan

risposta

89

questi dovrebbero sia il lavoro in base alle 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> 
+4

Il secondo ha funzionato. Grazie. –

+0

Prima uno ha funzionato per me non testato secondo. Ottimo lavoro – VVB

+2

entrambi dovrebbero, e in entrambi i casi, le correzioni di Windows Studio Trim e backslash prima della compilazione, inoltre converte \ u0027 in virgolette singole e quindi visualizza errore. –

3

Perché non fornite lo ' con la stringa con la quale lo sostituite?

Inoltre conosci costrutti come questo?

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

appena messo \ prima del 'nella stringa di E' FALSO E \' s VERO :)

+0

C'è un modo più pulito per farlo? Sto localizzando la mia app in francese e la mia cartella di string contiene molto testo. Quindi, passare tutto il testo e aggiungere il backslash non è ovviamente l'idea migliore. –

+0

No, questo è l'unico modo. –

+0

@The_Martian Sto avendo lo stesso problema, hai trovato un modo diverso da quello suggerito? – Nobody

0

In risposta alla https://stackoverflow.com/users/3339394/the-martian C'è una soluzione generale per la sostituzione di "per" devi copiare il testo in un editor di parole (come Notepad ++) e poi usando l'opzione "replace" nel programma sostituisci interi con "". (perché io ho abbastanza reputazione ho dovuto scriverlo in una risposta scusate!)

0

Questo errore è causato da un apostrofo Usato In String

Sostituire Apostrophe Con \' Thats all

-1

I ho trovato la soluzione in base al mio scenario.

  1. selezionare il file string.xml
  2. clic destro e spettacolo aperto in Esplora risorse
  3. Modificare la riga dal file string.xml e salvare il codice.
  4. Riapri Android studio e aggiorna la soluzione.

Ora il codice verrà eseguito.

Nota: ho ottenuto l'errore nell'uso Apostrophe su non può. così mi trasformo in Can not. Ora il mio scenario funzionerà.

1

sostituire il vostro apostrofo (') con (\') o add \ prima di ogni (')

nota: copiare solo all'interno() testo

1

Assicurarsi che siete modifica del file corretto. Come afferma this answer, quando si verifica l'errore, Android Studio apre un file values.xml, che assomiglia al tuo file originale.È necessario aggiungere \ nel file strings.xml originale (o ovunque sia il carattere illecito). Altrimenti continuerà a ripetere l'errore.

Problemi correlati