Parfois, mon code se déplace tout seul ou disparaît tout simplement dans l'éditeur XML Eclipse.
Lorsque je surligne le code affecté, les lignes en surbrillance essaient de se corriger. Mais lorsque je fais défiler ou que je fais glisser la souris dans la direction opposée, le code change à nouveau. En substance, j'aurai des lignes de code répétitives, manquantes et brisées affichées à partir d'un fichier sans erreur. Les fichiers concernés font la compilation et si je ferme / les Rouvrir ce problème va, pour le moment. Des idées sur ce qui se passe?
Ajout: Jeff Axelrod a fourni un lien vers un nouveau rapport de bogue avec Google.
Réponses:
Ce bogue est (enfin) corrigé dans ADT 21. Le correctif est maintenant disponible dans ADT 21 Preview 9, posté il y a quelques minutes, ici: https://android-review.googlesource.com/#/c/44936/1
La raison pour laquelle vous obtenez des artefacts visuels étranges est que si un fichier contient des fins de ligne DOS brisées (plusieurs retours chariot sans nouvelle ligne pour chaque retour chariot), Eclipse devient très confus. C'est le problème d'Eclipse https://bugs.eclipse.org/bugs/show_bug.cgi?id=375421 .
Le correctif comporte deux parties: (1) Premièrement, ADT a été corrigé de telle sorte qu’il n’introduit plus ces séquences \ r \ r dans le document. Cela garantit que vous n'obtenez pas de nouveaux documents qui déclenchent le comportement d'édition étrange, mais cela ne corrige pas rétroactivement les documents plus anciens avec ces fins de ligne, donc si vous les ouvrez, vous obtenez toujours un comportement d'édition étrange.
(2) Deuxièmement, il y a un nouveau contrôle des peluches qui recherche les fins de ligne brisée dans les documents. Cela s'exécute de manière incrémentielle, donc si vous éditez un fichier XML qui a ce problème, ADT ajoutera un marqueur d'erreur pour ce problème - avec un correctif rapide pour effectuer une intervention chirurgicale sur le document pour le résoudre.
En bref: Obtenez ADT 21 Preview 9; exécutez Lint sur vos projets et recherchez les plaintes concernant les fichiers contenant des fins de ligne interrompues, et s'il en trouve, appliquez le correctif rapide. À partir de maintenant, les modifications ultérieures avec l'éditeur de mise en page devraient conserver les fichiers au format cohérent.
Pour info, le correctif pertinent est ici: https://android-review.googlesource.com/#/c/44936/
Les instructions pour mettre à jour facilement les outils SDK et le plugin Eclipse ADT sont ici: http://tools.android.com/preview-channel
- Tor (de l'équipe des outils Android)
la source
Après quelques tests, j'ai trouvé que l'option "Formater automatiquement le XML édité par l'éditeur de mise en page visuelle" (dans Préférences | Android | Editeurs) pourrait être le coupable ici.
Avec mes tests, j'ai constaté que la modification d'une propriété (telle que layout_gravity) en mode de conception de mise en page graphique gâche toujours l'affichage visuel du fichier lorsque je retourne au mode XML (texte) lorsque cette option est activée mais que je n'ai aucun problème quand il est éteint.
Si vous souhaitez formater le XML à votre retour du mode de conception Mise en page graphique, utilisez simplement le raccourci Ctrl+ Shift+ F. De plus, je n'ai vu aucun problème avec l'utilisation de l'option "Formater lors de l'enregistrement"; même lorsque je l'utilise en mode de mise en page graphique; vous pouvez donc utiliser Ctrl+ à la Splace pendant que vous êtes toujours en mode de mise en page graphique pour enregistrer et formater votre XML.
J'ai essayé d'autres options d'éditeur comme "Afficher l'indicateur de plage" ou "Utiliser des caractères pour afficher les changements de règle verticale" mais je n'ai vu aucune différence de comportement avec l'activation ou la désactivation de ces options.
Enfin, pour corriger l'affichage visuel du fichier lorsqu'il est corrompu; J'ai trouvé que l'utilisation du raccourci: Ctrl+ A, Ctrl+ C, Ctrl+ Vest un peu plus facile que de fermer / rouvrir le fichier. Cela équivaut à faire un Sélectionner tout, Copier, Coller; copier efficacement l'ensemble du fichier XML sur lui-même.
la source
Toujours en train de rencontrer ce bug sur Juno (Eclipse 4.2.0, ADT r20).
Ma solution: allez dans Fenêtre -> Préférences -> Android -> Éditeurs. J'ai coché "Formater XML en utilisant le XML standard d'Android ..." et "Utiliser les paramètres Eclipse pour l'indentation ...." . Cela a résolu le problème pour moi.
la source
>
) et le crochet de fermeture de balise autonome (/>
) pour déterminer s'il faut précéder d'un espace (l'option est limitée aux deux ou à aucun). Cela semble être un problème trivial, mais pour une raison quelconque, je le trouve très irritant.EDIT: contient une méthode plus rapide, elle a donc été mise en avant:
Ctrl+ F -> remplir comme ça:
L'original était ici: ne cachez pas ce problème, si vous pouvez le résoudre. Parfois, même la fermeture du fichier XML n'a pas aidé.
Pour résoudre ce problème, examinons la raison. Tout d'abord, activez "Afficher les caractères d'espaces" ( Fenêtre> Préférences> Général> Éditeurs> Éditeurs de texte> Afficher les caractères d'espaces )
Revenez ensuite à votre fichier XML.
Dans l'image mise à l'échelle, vous pouvez voir la différence entre les couleurs du symbole "\ n";
puis placez simplement le curseur sur ce symbole, qui est plus sombre.
regardez, deux lignes ont été sélectionnées 0o ... c'est peut-être la raison!
supprimez-le simplement et appuyez sur le bouton "Entrée" ou "Retour" pour ajouter le symbole "\ n".
J'espère que cela vous aidera.
vous pouvez également trouver l'autre symbole de fin de ligne:
Supprimez-le aussi, et votre XML aura une belle apparence!
PS désolé pour les hyperliens, je suis novice et sur SO je ne peux pas télécharger d'image ou plus de 2 liens. alors j'espère que vous comprendrez sans photos supplémentaires;)
PPS Merci aux gars qui votent, maintenant je peux fournir des images.
la source
J'ai eu la même difficulté et j'ai finalement trouvé la solution: Faites un clic droit dans l'éditeur, sélectionnez
Source/Cleanup Document
.la source
J'ai eu le même problème. Les étapes suivantes étaient la solution. Link suggère que cela fonctionne pour les autres.
Notez qu'il y a 2 liaisons pour chacune des 3 commandes
À ce stade, vous ne devriez avoir que 2 liaisons définies pour effectuer un copier / coller (c'est-à-dire ctl + c / ctl + v)
Cette solution a été trouvée ici .
la source
Lorsque ce bogue apparaît avec les nouvelles versions d'ADT (qui sont obligatoires pour la correction et où le bogue ne devrait pas apparaître souvent), utilisez simplement l'outil Lint pour le corriger.
Trouvez-le dans les avertissements de peluche et cliquez sur l' icône d' ampoule jaune dans le coin supérieur droit de cette liste d'avertissements de peluche.
J'espère que cela aidera quelqu'un
la source