95

Sometimes my code moves on its own or just disappears in the Eclipse XML editor.

Yikes!

When I highlight the affected code, the highlighted lines try to correct themselves. But when I scroll or drag the mouse in the opposite direction the code shifts again. In essence I will have repeating, missing, and broken lines of code being displayed from an otherwise error free file. The files affected do compile and if I close / re-open them this problem goes away, for the moment. Any ideas on what's happening?


Addition: Jeff Axelrod provided a link to a new bug report with Google.

4

7 回答 7

32

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

通过我的测试,我发现在图形布局设计模式下更改属性(例如 layout_gravity)总是会在此选项打开但返回 XML(文本)模式时搞砸文件的视觉显示,但是当它关闭时我没有问题。

如果您想在从图形布局设计模式返回时格式化 XML,只需使用快捷键Ctrl++ 。此外,我没有发现使用“保存时格式化”选项有任何问题;即使我在图形布局模式下使用它;因此,当您仍处于图形布局模式时,您可以使用+来保存和格式化您的 XML。ShiftFCtrlS

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

最后,纠正文件损坏时的视觉显示;我发现使用快捷方式:Ctrl+ ACtrl+ CCtrl+V比关闭/重新打开文件要容易一些。这相当于做了一个全选、复制、粘贴;有效地将整个 XML 文件复制到自身之上。

于 2012-06-08T11:10:21.983 回答
32

此错误(最终)已在 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) 其次,有一个新的 lint 检查,用于查找文档中的断行结尾。这会以增量方式运行,因此如果您编辑存在此问题的 XML 文件,ADT 将为该问题添加一个错误标记 - 以及一个快速修复以对文档执行手术以修复它。

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

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

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

-- Tor(来自 Android 工具团队)

于 2012-10-18T00:58:20.850 回答
12

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

我的解决方法:转到窗口 -> 首选项 -> Android -> 编辑器。我同时选中了“使用标准 Android XML 格式化 XML...”“使用 Eclipse 设置进行缩进...”。这为我解决了这个问题。

于 2012-08-05T00:42:20.210 回答
12

编辑: 包含更快的方法,所以它被带到了顶部:

Ctrl+ F -> 像这样填充:

  1. "查找"          "\r\r\n"
  2. "替换"    "\r\n"
  3. 将“正则表达式”切换为ON
  4. 点击“全部替换”按钮
  5. Ctrl+A
  6. 取消选择文本。
  7. 开心点=)

原件在这里: 不要隐藏这个问题,如果你可以解决它。有时甚至关闭 XML 文件也无济于事。

为了修复它,让我们看看它的原因。首先打开“显示空白字符”(Window > Preferences > General > Editors > Text Editors > Show whitespace characters

然后回到您的 XML 文件。

在此处输入图像描述

在缩放图像中,您可能会看到“\n”-符号颜色的差异;

然后只需将光标放在那个更暗的符号上。
在此处输入图像描述

看,有两条线被选为0o...这可能是原因!

所以只需删除它,然后按“Enter”或“Return”按钮添加“\n”符号。 在此处输入图像描述
希望对您有所帮助。


您还可以找到 endline 的其他符号:
在此处输入图像描述


把它也删掉,你的 XML 就会很好看!

PS对不起超链接,我是新手,所以我不能上传图片或超过2个链接。所以希望你能在没有额外图片的情况下明白这一点;)

PPS 感谢投票的人,现在我可以提供图片了。

于 2012-10-02T13:48:47.557 回答
4

我遇到了同样的困难,终于找到了解决方法:在编辑器中右键,选择Source/Cleanup Document.

于 2012-10-07T11:39:10.997 回答
0

当这个错误出现在新版本的 ADT 中时(这是修复的强制性并且错误不应该经常出现),只需使用 Lint 工具来修复它。

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

希望它会帮助某人

于 2013-04-03T09:01:09.763 回答
0

我遇到过同样的问题。以下步骤是解决方案。链接建议它对其他人有用。

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

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

  1. 取消绑定复制和粘贴的辅助功能(保留 ctl+c/ctl+v [复制/粘贴] 绑定)

此时您应该只设置 2 个绑定来执行复制/粘贴(即 ctl+c/ctl+v)

  1. 点击应用->确定

在这里找到了这个解决方案。

于 2012-08-19T02:41:40.943 回答