单步执行手机上的Android代码 - 大行号差异

Ale*_*man 6 java debugging android

我正在尝试调试三星Captivate(Galaxy S)上与ListView相关的一些代码.我在我的代码中的某处放置了断点,当它停止时,我会在堆栈上返回几帧到ListView源.

现在,我可以预期会有一些不匹配,因为我的手机可能与我在IDE中使用的源代码略有不同的Android类版本.但是,我得到了超过300行的差异.我没有在模拟器上看到这种差异.

更重要的是,堆栈跟踪显示方法performItemClick()的ListView行号3688,而ListView源只有3644行,这个方法出现在3395行.我查看了不同版本的Android代码,没有一个更接近performItemClick()到3688行.

我能想到的唯一解释是三星改变了Android代码,但我不明白为什么他们会做这样的改变.

还有其他原因让我失踪吗?有没有办法强制调试器自动调整行,因为目前我无法单步执行此代码?

spe*_*ane 2

尝试不同的版本不会有帮助。三星修改了他们的框架代码,但他们没有发布更改。我的三星 Charge 智能手机也遇到了同样的问题。他们可能以同样的方式对待银河系。这是 Apache 许可证的一个不幸的现实。

当我就该问题联系三星时,我得到了以下回复(进行了少量修改):

FRG83 android-2.2.1_r1 是[Samsung Charge 的正确版本号]。

另外,“ListView.java”文件在手机上的文件和谷歌原始文件之间不匹配,因为我们修改了它。

ListView.java 受 Apache 许可证保护,没有义务发布源代码。

请理解,我们仅发布具有发布义务的涵盖许可证的开源代码。(例如 GPL、LGPL、MPL...等)。

提到“获取 android 开源”的原因只是为了构建我们的开源代码。