我不能将断点放在Android SDK或类的私有或包访问方法中。我可以将它们公之于众或受到保护。为什么?如果可能的话,我该如何改变呢?
更确切地说,不工作的情况是断点被添加到类签名中并且它表示“class:classname”。但调试器永远不会在这个类中停止。
它根本不适用于某些类,也不适用于公共方法...例如Gallery类。但它适用于其他类,例如AnalogClock(与Gallery相同的包)。或者查看。
答案 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.现在你可以点击断点。