移动和消失的代码行; Eclipse的XML编辑器出现问题

有时我的代码会自行移动,或者在Eclipse XML编辑器中消失。

哎呀!

当我突出显示受影响的代码时,突出显示的行尝试自行更正。 但是当我向相反的方向滚动或拖动鼠标时,代码会再次移动。 从本质上讲,我将有一个重复的,缺less的, 从另外一个没有错误的文件显示的代码行。 受影响的文件编译,如果我closures/重新打开它们,这个问题消失,暂时。 任何想法发生了什么?


补充: Jeff Axelrod提供了一个与Google联系的新bug报告 。

这个错误是(最终)在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

这个解决scheme有两个部分:(1)首先,ADT是固定的,不再将这些序列引入到文档中。 这样可以确保您不会获得触发奇怪编辑行为的新文档,但是它不会追溯性地修复具有这些行结尾的较旧文档,因此如果打开它们,仍然会出现奇怪的编辑行为。

(2)其次,有一个新的皮棉检查,在文件中查找折线结尾。 这个增量运行,所以如果你编辑有这个问题的XML文件,ADT会为这个问题添加一个错误标记 – 以及一个quickfix来对文档执行修复操作。

简而言之:获得ADT 21 Preview 9; 在您的项目上运行Lint并查找有关包含折线结尾的文件的任何投诉,如果find,请应用quickfix。 从现在开始,使用布局编辑器进一步编辑应该保持文件格式一致。

仅供参考,相关的修补程序在这里: https : //android-review.googlesource.com/#/c/44936/

轻松更新SDK工具和Eclipse ADT插件的说明如下: http : //tools.android.com/preview-channel

– Tor(来自Android工具团队)

经过一些testing后,我发现“自动格式化可视化布局编辑器编辑的XML”选项(在首选项|安卓|编辑器中)可能是这里的罪魁祸首。

通过我的testing,我发现在graphics布局devise模式下更改属性(如layout_gravity)时,如果此选项处于ON状态时返回到XML(文本)模式,则总是会使文件的可视化显示消失,我没有问题,当它closures。

如果要在从graphics布局devise模式返回时格式化XML,只需使用快捷键Ctrl + Shift + F即可 。 此外,我没有看到使用选项“保存格式”的任何问题; 即使在graphics布局模式下使用它, 因此您仍然可以在graphics布局模式下使用Ctrl + S来保存和格式化XML。

我试过其他的编辑器选项,例如“显示范围指示器”或“使用字符来显示垂直标尺的变化”,但我没有看到任何与激活或取消激活这些选项的行为上的差异。

最后,修正文件损坏时的可视化显示; 我发现使用快捷键: Ctrl + ACtrl + CCtrl + V比closures/重新打开文件要容易一些。 这相当于做一个全选,复制,粘贴; 有效地复制整个XML文件。

在Juno上仍然遇到这个错误(Eclipse 4.2.0,ADT r20)。

我的修复:转到窗口 – >首选项 – > Android – >编辑器。 我同时使用“使用标准Android XML格式化XML”“使用Eclipse设置缩进….”进行检查。 这解决了我的问题。

编辑:包含更快的方法,所以它被带到上面:

Ctrl + F – >像这样填充:

  1. “查找” “\ r \ r \ n”
  2. “replace” “\ r \ n”
  3. “正则expression式”切换为ON
  4. 点击“全部replace”button
  5. Ctrl + A
  6. 取消select文本。
  7. 快乐=)

原来是在这里:只要不隐藏这个问题,如果你可以修复它。 有时甚至closuresXML文件没有帮助。

为了解决它,让我们看看它的原因。 首先打开“显示空白字符”( 窗口>首选项>常规>编辑器>文本编辑器>显示空白字符

然后回到你的XML文件。

在这里输入图像描述

在缩放图像中,您可能会看到“\ n” – 符号颜色的区别;

那么就把光标放到那个更暗的符号上。
在这里输入图像描述

看,两条线被选中0 …这可能是原因!

所以只要删除它,然后按“Enter”或“Return”button添加“\ n”符号。 在这里输入图像描述
希望它能帮助你。


你也可以findendline的另一个符号:
在这里输入图像描述

只要删除它,你的XML将有一个很好看!

PS抱歉的超链接,我是新手,所以我不能上传图像或超过2个链接。 所以希望你没有额外的照片就能明白这一点;)

PPS Thx给那些投票的人,现在我可以提供这个图像。

我有同样的困难,终于find了解决办法:右键单击编辑器,selectSource/Cleanup Document

我遇到过同样的问题。 以下步骤是解决scheme。 链接build议它为别人工作。

  1. 转到首选项 – >键
  2. 取消绑定复制,粘贴和剪切(点击“应用”,然后点击“确定”)
  3. 重复步骤1
  4. 从步骤2恢复未绑定的命令(我没有恢复切割,但我相信你会没事的)

请注意,这3个命令中的每一个都有2个绑定

  1. 解除复制和粘贴的二次函数(将ctl + c / ctl + v [复制/粘贴]绑定)

在这一点上,你应该只有2个绑定设置来执行复制/粘贴(即ctl + c / ctl + v)

  1. 点击应用 – >确定

这个解决scheme在这里find。

新版本的ADT出现这个错误(这是强制性的修复和错误不应该经常出现的地方),只需使用Lint工具来修复它。

在Lint警告中find它,然后单击该Lint警告列表右上angular的黄色灯泡图标。

希望它会帮助别人