无法在Android SDK源(Eclipse)的某些位置设置断点

时间:2012-12-09 21:15:27

标签: android debugging

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

更确切地说,不工作的情况是断点被添加到类签名中并且它表示“class:classname”。但调试器永远不会在这个类中停止。

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

1 个答案:

答案 0 :(得分:0)

您无法设置断点的一个原因是Android sdk类不包含实现细节。

你可以使用Java Decompiler打开/(sdk路径)/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.现在你可以点击断点。