web-dev-qa-db-ja.com

コードの行の移動と消失。 EclipseのXMLエディターの問題

時々、コードが単独で移動したり、Eclipse XMLエディターで消えたりすることがあります。

Yikes!

影響を受けるコードを強調表示すると、強調表示された行はそれ自体を修正しようとします。しかし、マウスをスクロールまたは反対方向にドラッグすると、コードが再びシフトします。本質的には、エラーのないファイルから表示されるコードの壊れた行の欠落、繰り返しがあります。影響を受けるファイルdoはコンパイルされ、それらを閉じたり、再度開いたりすると、この問題は今のところなくなります。何が起こっているかについてのアイデアはありますか?


追加:Jeff Axelrod Googleへの新しい バグレポート へのリンクを提供しました。

94
Sam

このバグは(最終的に)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 .

修正には2つの部分があります。(1)最初に、ADTが修正され、これらの\ r\rシーケンスがドキュメントに導入されなくなりました。これにより、奇妙な編集動作をトリガーする新しいドキュメントを取得しないようにしますが、これらの行末で古いドキュメントをさかのぼって修正することはないため、それらを開くと、奇妙な編集動作が発生します。

(2)次に、ドキュメント内の破線の終わりを探す新しいlintチェックがあります。これはインクリメンタルに実行されるため、この問題のあるXMLファイルを編集すると、ADTはこの問題のエラーマーカーと、ドキュメントを修正するための手術を行うクイックフィックスを追加します。

つまり、ADT 21 Preview 9を入手してください。プロジェクトでLintを実行し、改行コードを含むファイルに関する苦情を探します。見つかった場合は、クイックフィックスを適用します。これ以降、レイアウトエディタを使用してさらに編集を行うと、ファイルの一貫したフォーマットが維持されます。

参考までに、関連する修正は次のとおりです。 https://Android-review.googlesource.com/#/c/44936/

SDKツールとEclipse ADTプラグインを簡単に更新する手順はこちらです。 http://tools.Android.com/preview-channel

-Tor(Androidツールチームから)

32
Tor Norbye

いくつかのテストの後、「ビジュアルレイアウトエディターによって編集されたXMLを自動的にフォーマットする」オプション(環境設定| Android | Editors))がここの原因であることがわかりました。

私のテストでは、グラフィカルレイアウトデザインモードでプロパティ(layout_gravityなど)を変更すると、このオプションがオンのときにXML(テキスト)モードに戻ると、常にファイルの視覚表示が台無しになることがわかりましたが、オフになっても問題ないということです。

グラフィカルレイアウトデザインモードから戻ったときにXMLをフォーマットする場合は、単にショートカットを使用します Ctrl+Shift+F。また、「保存時にフォーマット」オプションを使用しても問題はありませんでした。グラフィカルレイアウトモードで使用する場合でも。あなたが使用できるように Ctrl+S 代わりに、XMLの保存とフォー​​マットの両方を行うためのグラフィカルレイアウトモードのままです。

「範囲インジケーターを表示する」や「垂直ルーラーの変更を表示するために文字を使用する」など、他のエディターオプションを試しましたが、これらのオプションをアクティブまたは非アクティブにする動作に違いはありませんでした。

最後に、破損したファイルの視覚的な表示を修正します。私はショートカットを使用していることがわかりました: Ctrl+A、 Ctrl+C、 Ctrl+V ファイルを閉じる/開くよりも少し簡単です。これは、[すべて選択]、[コピー]、[貼り付け]を作成するのと同じです。 XMLファイル全体を効果的にコピーします。

32
SylvainL

編集:より高速なメソッドを含むため、先頭に移動しました:

Ctrl+F ->そのように記入してください:

  1. "検索" "\ r\r\n"
  2. "Replace" "\ r\n"
  3. スイッチ"正規表現"から[〜#〜] on [〜#〜]
  4. "すべて置換"ボタンを押す
  5. Ctrl+A
  6. テキストの選択を解除します。
  7. 幸せになる=)

元の場所:修正できる場合は、その問題を隠さないでください。場合によっては、XMLファイルを閉じても解決しませんでした。

修正するために、その理由を見てみましょう。まず「Show Whitespace Characters」をオンにします(Window> Preferences> General> Editors> Text Editors> Show whitespace characters

次に、XMLファイルに戻ります。

enter image description here

スケーリングされた画像では、「\ n」記号の色の違いが見られる場合があります。

次に、そのシンボルにカーソルを置くだけで、より暗くなります。
enter image description here

見て、2行が0o選択されました...それが理由かもしれません!

それを削除し、「Enter」または「Return」ボタンを押して「\ n」記号を追加します。 enter image description here
お役に立てば幸いです。


また、あなたはエンドラインの他のシンボルを見つけるかもしれません:
enter image description here


それも削除するだけで、XMLの見栄えが良くなります!

追伸ハイパーリンクについてすみません、私は初心者で、SO画像または2つ以上のリンクをアップロードできません。追加の写真なしでポイントを取得できることを願っています;)

P.P.S.賛成票を投じた人へのThx、今私はこれを画像で提供することができます。

12

Juno(Eclipse 4.2.0、ADT r20)でまだこのバグが発生しています。

私の修正:[ウィンドウ]-> [設定]-> Android-> Editorsに移動します。両方とも"標準Android XML .. "および"インデントにEclipse設定を使用... "チェック。これで問題は解決しました。

12
Vaiden

私は同じ困難を抱えていて、最終的に解決策を見つけました:エディターを右クリックして、Source/Cleanup Document

4
pcs

このバグがADTの新しいバージョン(修正に必須であり、バグが頻繁に表示されない場合)で表示される場合は、Lintツールを使用して修正してください。

Lint警告でそれを見つけ、そのリント警告リストの右上隅にあるyellow bulbアイコンをクリックします。

それが誰かを助けることを願っています

0
Ewoks

同じ問題がありました。次の手順が解決策でした。リンクはそれが他の人のために働いたことを示唆しています。

  1. 環境設定->キーに移動します
  2. コピー、貼り付け、切り取りのバインドを解除します(「適用」、次に「OK」を押します)
  3. ステップ1を繰り返します
  4. ステップ2からバインドされていないコマンドを復元します(カットは復元しませんでしたが、大丈夫だと確信しています)

3つのコマンドごとに2つのバインディングがあることに注意してください。

  1. コピーと貼り付けの両方の2次機能のバインドを解除します(ctl + c/ctl + v [copy/paste]バインドのまま)

この時点で、コピー/貼り付けを実行するために設定されているバインディングは2つだけです(つまり、ctl + c/ctl + v)

  1. 適用ヒット-> OK

この解決策が見つかりました ここ

0
Stephen