22

Eclipseでコードをデバッグしているときに、実際に.classファイルのソースを表示しているため、エディターを開いて編集できないことに気付くとイライラします。デバッグモードでEclipseに.classファイルではなく.javaファイルを開かせるにはどうすればよいですか?

編集:コードでブレークポイントに到達すると、MyFile.javaではなくMyFile.classに移動するためコードは表示されますが編集はできません。

編集:AndroidとADTR18と関係があると思います

4

4 に答える 4

54

この問題をもう少し深く調べる時間と正当な理由をようやく見つけた後、ソーンビョルンの答えについて少し詳しく説明します。

最近、GoogleはAndroidプロジェクトが外部のAndroidライブラリをパッケージ化する方法を変更しました。ADT R17(私は思う)では、外部プロジェクトのソースを.jarファイルにパッケージ化し、AndroidDependenciesまたは/libsフォルダーのプロジェクトに直接含め始めました。

これで、デバッガーがブレークポイントに到達すると、.jarにソースコードが表示され、基本的に.classファイルを編集するように指示されます。問題は、このファイルが読み取り専用であるため、.javaソースを手動で検索する必要があることです。(痛み)

修正は、デバッグビューでプロジェクト名を右クリックし、メニューから[ソースルックアップの編集...]を選択することです。そこから、デフォルトのルックアップパスを削除します。その後、プロジェクトが参照する関連プロジェクト(jarではなく)を手動で追加します。これを行うには、[追加]をクリックし、[Javaプロジェクト]を選択して、適切なプロジェクトを確認します。

于 2012-07-17T16:42:26.297 に答える
7

さて、これが働いた人の数を考えると、私は「あの男」になるのは嫌いですが、これは私にとってはまったくうまくいきませんでした。「ソースルックアップの編集...」メニュー項目がコンテキストメニューになかったことを意味します。デバッグパースペクティブ(おそらくデバッグパースペクティブのプロジェクトエクスプローラー)でこれを行うための指示を見逃しませんでした。アプリの実行中とアプリの一時停止中に試してみました。アプリケーションのプロジェクト(おそらく手順が参照しているもの)とライブラリのプロジェクトのメニューを確認してみました。サイコロはありません。これは最新のEclipseビルドによるものです。

しかし、私は問題を解決することができました:

  1. アプリケーションまたはソースをリンクしようとしているライブラリのいずれかにブレークポイントを設定します。ソースをリンクしようとしているライブラリに、ブレークポイントがヒットしたときに呼び出しスタックに表示される関数がある限り、これを実際にどこにでも配置できます。
  2. アプリケーションのデバッグを開始します。
  3. アプリをナビゲートしてブレークポイントに到達します。
  4. デバッグパースペクティブにいることを確認してください。
  5. (コールスタックが表示される)[デバッグ]タブで、ライブラリから任意の関数を見つけます。
  6. その機能を右クリックします。[ソースルックアップの編集...]メニューオプションが表示されます(下部近く)。
  7. ここからの手順は、スタイラーの手順と同じです。「追加」をクリックし、「Javaプロジェクト」を選択して、プロジェクト(または複数のプロジェクト)を追加します。
  8. [ソースルックアップの編集...]ウィンドウを終了する前に、あなたが私のようであれば、Eclipseが選択しなかったものをリストに追加することを選択したことがわかります。そのようなもののいくつか(おそらく「AndroidPrivateLibraries」のような名前の拡張可能なアイテムの下にあるのは、ソースを追加したばかりのライブラリのjarである可能性があります。それらのjarをリストから削除してください。
  9. 利益!
于 2013-10-01T01:56:04.797 に答える
6
  1. タブを開きmain project properties -> Java Build Path -> Projects、メインプロジェクトが依存するプロジェクトをそこに追加します。
  2. Order and Exportタブに切り替えてチェックを外しますAndroid Dependencies
  3. 楽しみ
于 2014-01-06T05:03:56.990 に答える
2

何らかの理由で、EclipseはクラスファイルがJavaファイルからのものであるとは信じていません。これは多くの場合、誤って構成されたビルドパス、またはプロジェクトがjarファイルを生成する代わりに使用されるjarファイルです。

プロジェクトマネージャーパネル(<->ボタン)を見て、Eclipseがクラスファイルを見つける場所を確認し、ソースファイルでプロジェクトの代わりにその場所を使用する理由を理解します。

于 2012-07-11T21:13:19.017 に答える