コード行の移動と消失; EclipseのXMLエディターに関する問題


95

時々、私のコードは自然に動くか、Eclipse XMLエディターに消えてしまいます。

うわぁ!

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


追加: ジェフアクセルロッドは、Googleの新しいバグレポートへのリンクを提供しました。


グラフィックの問題のように思えます。OSとEclipseのバージョンは何ですか?
sd 2012

VistaとEclipse 3.7.2 Eclipseバグサイトを見て回りましたが、うまくいきませんでした。説明的なキーワードが不足しているのではないですか?
サム

2
私も同じ問題を抱えています。Win7 Pro 32ビットおよびEclipse 3.7.2とandroid 17.0.0 ...回答で説明したのと同じシナリオ。バグレポートも見つかりません。
パット

私もこれを経験しています、それは私を狂わせます...私の場合、日食インディゴでWindows XPを使用しています。この問題は常に発生します。グラフィカルレイアウトからxmlエディターに切り替えます
mdelolmo '31

1
Androidバグレポートはこちらに提出してください
ジェフアクセルロッド2012

回答:


32

このバグは(最終的に)ADT 21で修正されました。修正はADT 21プレビュー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)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ツールチームから)


直接お返事していただきありがとうございます。これまでのところ、うまくいきます。ソースコードをダウンロードしてツールをローカルでビルドしたくない場合は、次の2つの手順に従って、ビルド済みバージョンをインストールします。(ステップ2の実行方法を忘れた場合は、Eclipseプラグインのインストールをお読みください。)
Sam

私にとってはうまくいきます。私はEclipse Junoにいます。ヘルプ>新しいソフトウェアのインストール>何が既にインストールされていますか?次に、GoogleからすべてのAndroidのものを選択し、[更新]を選択しました。
rodrigo-silveira 2013年

32

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

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

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

「範囲インジケーターの表示」や「文字を使用して垂直定規の変更を表示する」などの他のエディターオプションを試しましたが、これらのオプションを有効または無効にしても動作に違いはありませんでした。

最後に、ファイルが破損しているときにファイルの視覚的な表示を修正します。Ctrl+ ACtrl+ CCtrl+ のショートカットを使用するとV、ファイルを閉じる/開くよりも少し簡単です。これは、すべて選択、コピー、貼り付けを行うのと同じです。XMLファイル全体を効率的にコピーします。


4
ADTバージョン20120624 ...とIndigo Service Release 2およびSDK Tools Rev 20を使用していて、[XMLを自動的にフォーマットする...]がアクティブでない場合でも、行が消えて他の行に変わります。
ブライアン

1
Junoで試してください。現時点では、このバグをJunoで再現することはできません。ただし、Junoには他にもバグがあります。たとえば、2つのXMLファイルを開いた状態で、削除キーが誤ったファイルに作用していました。1つのファイルの1つの文字を削除しようとすると、代わりに他のファイルの文字が削除されました。ただし、Backspaceキーは問題ありませんでした。また、エミュレータでEXEを実行しようとすると、ヒープスペースが不足しているというエラーメッセージが時々表示されるため、デフォルトのeclipse.ini構成を変更する必要もあります。32ビット版と64ビット版の両方を確認しましたか?
SylvainL 2012

私は32ビットバージョンのみを使用していたと思います。
ブライアン

これは、このエラーが発生する頻度を減らすため、これまでのところ最良の回答ですが、それが解消されるわけではないため、問題は未解決のままです。
Sam

1
私はまだこの問題を抱えていますが、グラフィカルエディターではそうではありません。代わりに、AndroidManifest.xmlファイルが原因です。別のエディターを使用します。これは最新バージョンのものです-Junoですが、最近、Androidアプリケーションで作業する時間があまりなかったので、はっきりとは言えません。
SylvainL 2012

12

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

私の修正:Window-> Preferences-> Android-> Editorsに移動します。「標準のAndroid XMLを使用してXMLをフォーマット...」「インデントにEclipse設定を使用...」の両方をオンにしました。これで問題は解決しました。


1
いいえ。「標準のAndroid XMLを使用してXMLをフォーマット...」のチェックを外すだけです。奇妙なXMLの不具合を修正しますが、Eclipseの慣習を守る必要もあります。
tom_mai78101 2012

個人的にはEclipseの慣習を好みます。Androidの場合、開始タグの終了ブラケット(>)とスタンドアロンタグの終了ブラケット()は区別されません/>。些細な問題のようですが、何らかの理由で非常にイライラします。
JAB 2013年

12

編集: より高速なメソッドが含まれているため、トップになりました:

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

  1. 「検索」          「\ r \ r \ n」
  2. 「置換」    「\ r \ n」
  3. 「正規表現」オンに切り替えます
  4. ヒット「すべて置換」ボタンを
  5. Ctrl+A
  6. テキストの選択を解除します。
  7. 幸せになる=)

オリジナルはここにありました: 修正できる場合は、その問題を隠さないでください。XMLファイルを閉じても解決しない場合があります。

修正のために、その理由を見てみましょう。まず、「空白文字を表示」をオンにします(「ウィンドウ」>設定>一般」>エディタ」>「テキストエディタ」>「空白文字を表示」)。

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

ここに画像の説明を入力してください

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

次に、そのシンボルにカーソルを合わせます。
ここに画像の説明を入力してください

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

それを削除し、「Enter」または「Return」ボタンを押して「\ n」記号を追加します。 ここに画像の説明を入力してください
お役に立てば幸いです。


また、エンドラインの他のシンボルを見つけるかもしれません:
ここに画像の説明を入力してください


削除するだけで、XMLの見栄えが良くなります。

PSハイパーリンクをごめんなさい、私は初心者なので、画像や2つを超えるリンクをアップロードできません。追加の画像なしで要点が得られることを願っています;)

投票した人にPPS Thxを提供し、画像でこれを提供できるようになりました。


どうもありがとう。上位投票のコメントを機能させることができませんでしたが、これはうまくいきました。
public static void

4

私も同じ問題を抱えて、ようやく解決策を見つけましたSource/Cleanup Document。エディターで右クリックし、を選択します。


0

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

  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

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.