J'ai déclaré une longue chaîne dans string.xml
une application.
Déclaré comme ça
<string name="terms">PLEASE READ THESE TERMS OF USE CAREFULLY BY ACCESSING THIS .................</string>
Mais cela donne l'erreur suivante:
error: Apostrophe not preceded by \ (in PLEASE READ THESE TERMS OF USE CAREFULLY
Réponses:
postez votre chaîne complète. Cependant, je suppose qu'il y a un caractère apostrophe (') dans votre chaîne. remplacez-le par (\ ') et cela résoudra le problème. par exemple,
Réf:
http://www.mrexcel.com/forum/showthread.php?t=195353
https://code.google.com/archive/p/replicaisland/issues/48
la source
<string name="good_example">"This'll work"</string>
Reference: developer.android.com/guide/topics/resources/…Solution
Les apostrophes dans le fichier strings.xml doivent être écrites comme
Exemple
Dans mon cas, j'ai eu une erreur avec cette chaîne dans mon strings.xml et je l'ai corrigée.
Ici, vous voyez que mon application se construit correctement avec ce code.
Voici la chaîne réelle dans mon application.
la source
Vous devez mettre \ avant une apostrophe. Comme ceci \ ', vérifiez également que vous modifiez strings.xml et non values.xml (android studio vous dirige vers ce fichier lorsque l'erreur s'affiche). Parce que si vous modifiez values.xml et essayez de compiler à nouveau, l'erreur persiste. Cela m'est arrivé récemment.
la source
https://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling
Échapper aux apostrophes et aux citations
Si vous avez une apostrophe ou un guillemet dans votre chaîne, vous devez l'échapper ou placer la chaîne entière dans l'autre type de guillemets. Par exemple, voici quelques piqûres qui fonctionnent et qui ne fonctionnent pas:
la source
Utilisez cette expression régulière
(?<!\\)'
pour rechercher une apostrophe sans échappement. Il trouve une apostrophe qui n'est pas précédée d'une barre oblique inverse.la source
J'utilise l'hébreu (langage RTL) dans strings.xml. J'ai recherché manuellement le string.xml pour ce caractère: 'alors j'ai ajouté le caractère d'échappement \ en face de celui-ci (maintenant il ressemble à \') et j'ai toujours la même erreur!
J'ai cherché à nouveau le caractère 'et j'ai remplacé le caractère' par \ '(écriture eng), car il montre un droit à gauche, il ressemble à cela' \ dans le strings.xml !!
Problème résolu.
la source
Vous pourrez peut-être utiliser l'équivalent Unicode à la fois de l'apostrophe et d'autres caractères qui ne sont pas pris en charge dans la chaîne xml. L'équivalent de l'apostrophe est "\ u0027".
la source
1. pour erreur: apostrophe non échappée dans la chaîne
ce que j'ai trouvé, c'est que l'outil AAPT2 pointe parfois vers une mauvaise ligne en xml. Vous devez donc corriger tout le fichier strings.xml
Dans Android Studio, dans les fichiers problématiques, utilisez:
Modifier-> rechercher-> remplacer
Ensuite, écrivez dans le premier champ \ '(ou \ &,>, \ <, \ ")
dans le deuxième put' (ou &,>, <,")
puis remplacez chacun si nécessaire. (Ou "reptlace all" au cas où ' )
Ensuite, dans le premier champ, mettez à nouveau '(ou &,>, <, ")
et dans la deuxième écriture \'
puis remplacez chacun si nécessaire. (Ou" remplacez tout "au cas où avec ')
2. pour les autres symboles problématiques
que j'utilise pour commenter chaque partie suivante + reconstruire jusqu'à ce que je ne trouve pas le mauvais signe.
Par exemple, un mot échappé "\ update" supprime de manière inattendue une telle erreur :)
la source
La meilleure réponse qui consiste simplement à échapper à
'
avec\'
fonctionne mais je n'aime pas la solution car lorsque vous utilisez remplacer tout par'
à\'
, cela ne fonctionne qu'une seule fois. La deuxième fois, il vous restera\\'
., Utilisez donc:
\u0027
.la source