我不能在 Android SDK 的私有或包访问方法或类中放置断点。我可以将它们公开或保护。为什么?如果可能的话,我该如何改变呢?
更确切地说,不工作的情况是在类签名中添加了一个断点,它显示“类:类名”。但是调试器永远不会在这个类中停止。
它根本不适用于某些类,也不适用于公共方法……例如 Gallery 类。但它适用于其他类,例如 AnalogClock(与 Gallery 位于同一包中)。或查看。
无法设置断点的原因之一是 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.现在你可以打断点了。