4

Android SDK のプライベートまたはパッケージ アクセス メソッド、またはクラスにブレークポイントを配置できません。それらを公開または保護することができます。なんで?可能であれば、どうすればそれを変更できますか?

より正確には、機能しないケースは、ブレークポイントがクラス署名に追加され、「class: classname」と表示されていることです。しかし、デバッガーはこのクラスで停止することはありません。

特定のクラスではまったく機能せず、パブリック メソッドでも機能しません...たとえば、Gallery クラスです。ただし、AnalogClock (Gallery と同じパッケージに含まれています) など、他のクラスでも動作します。または表示します。

4

1 に答える 1

0

ブレークポイントを設定できない理由の 1 つは、Android SDK クラスに実装の詳細が含まれていないことです。

Java Decompiler を使用して /(sdk path)/platforms/android-xx/android.jar ファイルを開いて、sdk クラスの詳細を確認すると、すべてのメソッドの実装が次のようになっていることがわかります。

  public int getVerticalScrollbarWidth()
  {
    throw new RuntimeException("Stub!");
  }

プライベート メソッドは含まれません。アタッチソースがSDKクラスに正確に対応していないため、Eclipse Javaデバッガーはブレークポイントの設定方法を知りません。

私はこの問題に対処するためのあまり良い方法を持っていません. 1. ソース ファイル (例: /android/view/View.java) を Eclipse の Android/Java プロジェクトにコピーします。2. ステップ 1 でファイルにブレークポイントを設定します。 3. これで、ブレークポイントに到達できます。

于 2016-07-22T05:12:14.757 に答える