134 votes

Erreur dans le fichier strings.xml dans Android

J'ai déclaré une longue chaîne de caractères dans string.xml d'une application.

Déclaré comme ceci

<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

1 votes

L'erreur est, parce que trop de points dans la chaîne. Erreur : Apostrophe non précédée de ` est un message factice, le problème est dans les points. Si je me souviens bien, après plus de trois points, vous pouvez obtenir une erreur.

4voto

Li3ro Points 449

J'utilise l'hébreu (langue RTL) dans le fichier strings.xml. J'ai recherché manuellement dans le fichier string.xml le caractère suivant : ' puis j'ai ajouté le caractère d'échappement \ devant lui (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 anglaise), puisqu'il s'agit d'une écriture de droite à gauche, on dirait que '\' dans le fichier strings.xml ! !!

Problème résolu.

0 votes

@akauppi, Ce commentaire s'adresse davantage aux développeurs de langues RTL, car nous rencontrons des éditeurs qui ne gèrent pas très bien le RTL, en affichant les caractères dans un mauvais ordre à l'écran. Taper de longues phrases en hébreu dans un fichier xml peut devenir compliqué.

0 votes

Ah, de droite à gauche. Tout s'explique maintenant. Merci.

3 votes

Nous avons résolu le problème des apostrophes en hébreu en les échappant des deux côtés : \'\

3voto

Dan Bray Points 576

La meilleure réponse est de simplement échapper à la ' con \' fonctionne mais je n'aime pas cette solution car lorsque l'on utilise replace all avec ' a \' ça ne marche qu'une fois. La deuxième fois, vous vous retrouverez avec \\' .

Par conséquent, utilisez : \u0027 .

2voto

Photon Point Points 557

Vous pouvez utiliser l'équivalent unicode de l'apostrophe et d'autres caractères qui ne sont pas pris en charge par la chaîne xml. L'équivalent de l'apostrophe est " \u0027 " .

1voto

aladin Points 11

1. en cas d'erreur : apostrophe non marquée dans une chaîne de caractères

Ce que j'ai trouvé, c'est que l'outil AAPT2 pointe vers une mauvaise ligne dans le xml, parfois. Vous devez donc corriger l'ensemble du fichier strings.xml.

Dans Android Studio, dans le fichier problème, utilisez :

Editer->finir->remplacer

Ensuite, écrivez dans le premier champ \' (ou \&,>,\<,\")
dans le second, mettez '(ou &,>,<,")
puis remplacez chacun d'entre eux si nécessaire (ou "reptlacez tous" dans le cas avec ').
Puis, dans le premier champ, mettez à nouveau "(ou &,>,<,")".
et en second lieu, écrivez
puis remplacer chacun d'entre eux si nécessaire (ou "remplacer tous" dans le cas avec ').

2. pour d'autres symboles problématiques
J'ai l'habitude de commenter chaque demi-partie suivante +reconstruction. jusqu'à ce que je ne trouve plus de mauvais signe.

Par exemple, un mot échappé " \update " supprime inopinément cette erreur :)

1voto

Prajwal W Points 117
  1. Pour trouver tous les ' dans votre fichier, procédez comme suit :

Ctrl + F [Saisir l'apostrophe dans le champ de recherche] '

  1. Il faut écrire "World's".

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X