He declarado una cadena larga en string.xml
una aplicación.
Declarado así
<string name="terms">PLEASE READ THESE TERMS OF USE CAREFULLY BY ACCESSING THIS .................</string>
Pero esto da el siguiente error:
error: Apostrophe not preceded by \ (in PLEASE READ THESE TERMS OF USE CAREFULLY
Respuestas:
publique su cadena completa. Sin embargo, creo que hay un carácter de apóstrofe (') en su cadena. reemplácelo con (\ ') y solucionará el problema. por ejemplo,
Árbitro:
http://www.mrexcel.com/forum/showthread.php?t=195353
https://code.google.com/archive/p/replicaisland/issues/48
fuente
<string name="good_example">"This'll work"</string>
Solución
Los apóstrofos en strings.xml deben escribirse como
Ejemplo
En mi caso, tuve un error con esta cadena en mi strings.xml y lo arreglé.
Aquí puede ver que mi aplicación se compila correctamente con ese código.
Aquí está la cadena real en mi aplicación.
fuente
Tienes que poner \ antes de un apóstrofe. Así \ ', también verifique que está editando strings.xml y no values.xml (Android Studio lo dirige a este archivo cuando muestra el error). Porque si editas values.xml e intentas compilar nuevamente, el error persiste. Esto me estaba pasando recientemente.
fuente
https://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling
Escapar de apóstrofes y citas
Si tiene un apóstrofo o una cita en su cadena, debe escapar de ella o encerrar toda la cadena en el otro tipo de comillas adjuntas. Por ejemplo, aquí hay algunas picaduras que funcionan y no funcionan:
fuente
Utilice esta expresión regular
(?<!\\)'
para buscar un apóstrofe sin escape. Encuentra un apóstrofo que no está precedido por una barra invertida.fuente
Utilizo hebreo (lenguaje RTL) en strings.xml. He buscado manualmente el string.xml para este carácter: 'luego agregué el carácter de escape \ enfrente de él (ahora parece \') y todavía tengo el mismo error.
Busqué nuevamente el char 'y reemplacé el char' con \ '(escritura en inglés), ya que muestra una derecha a izquierda y se ve así' \ en strings.xml !!
Problema resuelto.
fuente
Es posible que pueda usar un apóstrofo equivalente a Unicode y otros caracteres que no son compatibles con la cadena xml. El equivalente de Apostrophe es "\ u0027".
fuente
1. por error: apóstrofo sin escape en cadena
lo que encontré es que la herramienta AAPT2 apunta a una fila incorrecta en xml, a veces. Por lo tanto, debe corregir el archivo strings.xml completo
En Android Studio, en el uso de archivos problemáticos:
Editar-> buscar-> reemplazar
Luego escriba en el primer campo \ '(o \ &,>, \ <, \ ")
en el segundo puesto' (o &,>, <,") y
luego reemplace cada uno si es necesario. (O "reptlace all" en caso de que tenga ' )
Luego, en el primer campo,
escriba nuevamente '(o &,>, <, ") y en el segundo escriba \',
luego reemplace cada uno si es necesario. (O" reemplace todo "en el caso con ')
2. para otros símbolos problemáticos
, utilizo para comentar cada mitad siguiente + reconstruir hasta que no encuentre el signo incorrecto.
Por ejemplo, una palabra de escape "\ update" arroja inesperadamente dicho error :)
fuente
La mejor respuesta de simplemente escapar de
'
con\'
funciona, pero no me gusta la solución porque cuando se usa reemplazar todos con'
to\'
, solo funciona una vez. La segunda vez te quedarás\\'
.Por lo tanto, utilice:
\u0027
.fuente