4

我不能在 Android SDK 的私有或包访问方法或类中放置断点。我可以将它们公开或保护。为什么?如果可能的话,我该如何改变呢?

更确切地说,不工作的情况是在类签名中添加了一个断点,它显示“类:类名”。但是调试器永远不会在这个类中停止。

它根本不适用于某些类,也不适用于公共方法……例如 Gallery 类。但它适用于其他类,例如 AnalogClock(与 Gallery 位于同一包中)。或查看。

4

1 回答 1

0

无法设置断点的原因之一是 Android sdk 类不包含实现详细信息。

你可以使用Java Decompiler打开/(sdk path)/platforms/android-xx/android.jar文件查看sdk类的详细信息,你会发现所有方法的实现如下:

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

并且不包含私有方法。所以eclipse java调试器不知道如何设置断点,因为附加源与sdk类不完全对应。

我有一个不太好的方法来处理这个问题。1.将源文件(例如/android/view/View.java)复制到eclipse中的任何android/java项目。2.在步骤1中的文件中设置断点。 3.现在你可以打断点了。

于 2016-07-22T05:12:14.757 回答