Перемещение и исчезновение строк кода; проблема с Eclipse XML Editor
Иногда мой код движется сам по себе или просто исчезает в редакторе XML Eclipse.
![Yikes!]()
Когда я выделяю затронутый код, выделенные строки пытаются исправить себя. Но когда я прокручиваю или перетаскиваю мышь в противоположном направлении, код сдвигается снова. По сути, у меня будут повторяющиеся, отсутствующие и сломанные строки кода, отображаемые из файла без ошибок. Затрагиваемые файлы компилируются, и если я закрываю/открываю их, проблема на данный момент исчезает. Любые идеи о том, что происходит?
Дополнение:
Джефф Аксельрод предоставил ссылку на новый отчет об ошибке с Google.
Ответы
Ответ 1
Эта ошибка (наконец) исправлена в ADT 21. Исправление теперь доступно в ADT 21 Preview 9, опубликованном несколько минут назад, здесь: https://android-review.googlesource.com/#/c/44936/1
Причина, по которой вы получаете странные визуальные артефакты, заключается в том, что если файл содержит разбитые конечные строки DOS (несколько возвратов каретки без новой строки для каждого возврата каретки), Eclipse очень запутан. Эта проблема Eclipse https://bugs.eclipse.org/bugs/show_bug.cgi?id=375421.
В исправлении есть две части:
(1) Во-первых, ADT был исправлен таким образом, что он больше не вводит эти последовательности \r\r в документ. Это гарантирует, что вы не получите новые документы, которые запускают странное поведение редактирования, но не ретроактивно исправляют старые документы с этими окончаниями строк, поэтому, если вы их открываете, вы по-прежнему получаете странное поведение редактирования.
(2) Во-вторых, есть новая проверка на линт, которая ищет ломаные строки в документах. Это выполняется постепенно, поэтому, если вы отредактируете XML файл, у которого есть эта проблема, ADT добавит маркер ошибки для этой проблемы - наряду с быстрым исправлением для выполнения операции над документом, чтобы исправить его.
Вкратце:
Получить ADT 21 Preview 9; запустите Lint в ваших проектах и ищите любые жалобы на файлы, содержащие ломаные строки, и если они найдут какие-либо, примените quickfix. С этого момента дальнейшие изменения в редакторе макетов должны содержать файлы в формате.
FYI, соответствующее исправление находится здесь: https://android-review.googlesource.com/#/c/44936/
Инструкции по легкому обновлению SDK Tools и плагина Eclipse ADT находятся здесь: http://tools.android.com/preview-channel
- Tor
(из команды инструментов Android)
Ответ 2
После некоторых тестов я обнаружил, что здесь может быть виновен вариант "Автоматически форматировать XML, отредактированный редактором визуальных макетов" (в разделе "Настройки | Android | Редакторы" ).
В моих тестах я обнаружил, что изменение свойства (например, layout_gravity) в режиме графического макета всегда заворачивает визуальное отображение файла, когда я возвращаюсь в режим XML (текст), когда эта опция ON, но у меня нет проблем, когда он выключен.
Если вы хотите отформатировать XML при возврате из режима графического макета, просто используйте ярлык Ctrl + Shift + F. Кроме того, я не видел никаких проблем с использованием опции "Формат при сохранении"; даже когда я использую его в режиме графической компоновки; поэтому вы можете использовать Ctrl + S, пока вы все еще находитесь в режиме графического макета, чтобы сохранять и форматировать свой XML.
Я пробовал другие варианты редакторов, такие как "Показать индикатор диапазона" или "Использовать символы для отображения изменений в вертикальной линейке", но я не видел различий в поведении при активации или дезактивации этих параметров.
Наконец, чтобы исправить визуальное отображение файла, когда он поврежден; Я обнаружил, что использование ярлыка: Ctrl + A, Ctrl + C, Ctrl + V немного легче, чем закрытие/повторное открытие файла. Это эквивалентно выбору Select All, Copy, Paste; эффективно копируя весь XML файл по себе.
Ответ 3
Все еще испытывает эту ошибку в Juno (Eclipse 4.2.0, ADT r20).
Мое исправление:
Перейдите в Окно → Настройки → Android → Редакторы.
У меня есть "Формат XML с использованием стандартного Android XML..." и "Использовать настройки Eclipse для отступов....". Это решило проблему для меня.
Ответ 4
EDIT:
содержат более быстрый метод, поэтому он был наверху:
Ctrl + F → заполните так:
- "Найти" "\ Г\г\п"
- "Заменить" "\ r\n"
- Переключить "Регулярное выражение" на ВКЛ
- нажмите кнопку "Заменить все"
- Ctrl + A
- Отменить выбор текста.
- быть счастливым =)
Оригинал был здесь:
Просто не скрывайте эту проблему, если можете ее исправить. Иногда даже закрытие файла XML не помогло.
Для исправления давайте посмотрим на причину этого. Прежде всего включите "Показывать символы пробелов" ( "Окно" > "Настройки" > "Основные" > "Редакторы" > "Текстовые редакторы" > "Показать пробельные символы" )
Затем вернитесь в свой XML файл.
![enter image description here]()
В масштабированном изображении вы можете увидеть разницу цветов "\n" -символов;
затем просто поместите курсор на этот символ, который темнее.
![enter image description here]()
Посмотрите, две линии были выбраны 0o... это может быть причиной!
поэтому просто удалите его и нажмите кнопку "Enter" или "Return", чтобы добавить символ "\n".
![enter image description here]()
Надеюсь, это поможет вам.
также вы можете найти другой символ конечной линии:
![enter image description here]()
Просто удалите его, и ваш XML будет отлично смотреться!
P.S. извините за гиперссылки, я новичок и на SO я не могу загрузить изображение или более 2 ссылок. так что надеюсь, вы получите точку без дополнительных фотографий;)
P.P.S. спасибо к парню, который проголосует, теперь я могу предоставить это изображения.
Ответ 5
У меня была такая же трудность и, наконец, нашли решение: щелкните правой кнопкой мыши в редакторе, выберите Source/Cleanup Document
.
Ответ 6
У меня была такая же проблема. Это были следующие шаги. Ссылка предлагает, чтобы он работал для других.
- Перейдите в раздел Настройки → ключи
- Отменить копирование, вставить и вырезать (нажать "применить", затем "ОК" )
- повторить шаг 1
- Восстановить несвязанные команды с шага 2 (я не восстановил вырезание, но я уверен, что все будет в порядке)
Обратите внимание, что есть 2 привязки для каждой из трех команд
- Отключить вторичную функцию для копирования и вставки (оставить ctl + c/ctl + v [копировать/вставить])
В этот момент вы должны установить только 2 привязки для выполнения копирования/вставки (т.е. ctl + c/ctl + v)
- Применить → OK
Это решение было найдено здесь.
Ответ 7
Если эта ошибка появляется с новыми версиями ADT (которые являются обязательными для исправления и где ошибка не должна появляться часто), просто используйте инструмент Lint, чтобы исправить это.
Найдите его в предупреждениях Lint и нажмите значок желтая лампочка в правом верхнем углу этого списка предупреждений Lint..
Надеюсь, что это поможет кому-то