Иногда мой код движется сам по себе или просто исчезает в редакторе XML Eclipse.
Когда я выделяю затронутый код, выделенные строки пытаются исправить себя. Но когда я прокручиваю или перетаскиваю мышь в противоположном направлении, код сдвигается снова. По сути, у меня будут повторяющиеся, отсутствующие и сломанные строки кода, отображаемые из файла без ошибок. Затрагиваемые файлы компилируются, и если я закрываю/открываю их, проблема на данный момент исчезает. Любые идеи о том, что происходит?
Дополнение: Джефф Аксельрод предоставил ссылку на новый отчет об ошибке с Google.
Эта ошибка (наконец) исправлена в 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)
После некоторых тестов я обнаружил, что здесь может быть виновен вариант "Автоматически форматировать XML, отредактированный редактором визуальных макетов" (в разделе "Настройки | Android | Редакторы" ).
В моих тестах я обнаружил, что изменение свойства (например, layout_gravity) в режиме графического макета всегда заворачивает визуальное отображение файла, когда я возвращаюсь в режим XML (текст), когда эта опция ON, но у меня нет проблем, когда он выключен.
Если вы хотите отформатировать XML при возврате из режима графического макета, просто используйте ярлык Ctrl + Shift + F. Кроме того, я не видел никаких проблем с использованием опции "Формат при сохранении"; даже когда я использую его в режиме графической компоновки; поэтому вы можете использовать Ctrl + S, пока вы все еще находитесь в режиме графического макета, чтобы сохранять и форматировать свой XML.
Я пробовал другие варианты редакторов, такие как "Показать индикатор диапазона" или "Использовать символы для отображения изменений в вертикальной линейке", но я не видел различий в поведении при активации или дезактивации этих параметров.
Наконец, чтобы исправить визуальное отображение файла, когда он поврежден; Я обнаружил, что использование ярлыка: Ctrl + A, Ctrl + C, Ctrl + V немного легче, чем закрытие/повторное открытие файла. Это эквивалентно выбору Select All, Copy, Paste; эффективно копируя весь XML файл по себе.
EDIT: содержат более быстрый метод, поэтому он был наверху:
Ctrl + F → заполните так:
Оригинал был здесь: Просто не скрывайте эту проблему, если можете ее исправить. Иногда даже закрытие файла XML не помогло.
Для исправления давайте посмотрим на причину этого. Прежде всего включите "Показывать символы пробелов" ( "Окно" > "Настройки" > "Основные" > "Редакторы" > "Текстовые редакторы" > "Показать пробельные символы" )
Затем вернитесь в свой XML файл.
В масштабированном изображении вы можете увидеть разницу цветов "\n" -символов;
затем просто поместите курсор на этот символ, который темнее.
Посмотрите, две линии были выбраны 0o... это может быть причиной!
поэтому просто удалите его и нажмите кнопку "Enter" или "Return", чтобы добавить символ "\n".
Надеюсь, это поможет вам.
также вы можете найти другой символ конечной линии:
Просто удалите его, и ваш XML будет отлично смотреться!
P.S. извините за гиперссылки, я новичок и на SO я не могу загрузить изображение или более 2 ссылок. так что надеюсь, вы получите точку без дополнительных фотографий;)
P.P.S. спасибо к парню, который проголосует, теперь я могу предоставить это изображения.
Все еще испытывает эту ошибку в Juno (Eclipse 4.2.0, ADT r20).
Мое исправление: Перейдите в Окно → Настройки → Android → Редакторы. У меня есть "Формат XML с использованием стандартного Android XML..." и "Использовать настройки Eclipse для отступов....". Это решило проблему для меня.
>
) и закрывающую скобку автономного тега ( />
) для определения, следует ли ставить пробел (опция ограничена обоими или ни одной). Похоже, тривиальная проблема, но по некоторым причинам я нахожу это очень раздражающим.
У меня была такая же трудность и, наконец, нашли решение: щелкните правой кнопкой мыши в редакторе, выберите Source/Cleanup Document
.
Если эта ошибка появляется с новыми версиями ADT (которые являются обязательными для исправления и где ошибка не должна появляться часто), просто используйте инструмент Lint, чтобы исправить это.
Найдите его в предупреждениях Lint и нажмите значок желтая лампочка в правом верхнем углу этого списка предупреждений Lint..
Надеюсь, что это поможет кому-то
У меня была такая же проблема. Это были следующие шаги. Ссылка предлагает, чтобы он работал для других.
Обратите внимание, что есть 2 привязки для каждой из трех команд
В этот момент вы должны установить только 2 привязки для выполнения копирования/вставки (т.е. ctl + c/ctl + v)
Это решение было найдено здесь.