【已解决】Eclipse的ADT中调试Android程序时给jar包添加源码以便源码级调试

【背景】

折腾:

【已解决】android程序运行出错:UsbManager(4294): exception in UsbManager.openDevice,java.lang.SecurityException: User has not given permission to device UsbDevice

期间,在基于Eclipse的ADT中调试android程序。

之前已经加了个jar包

注:是直接拷贝对应的jar,然后在ADT的Eclipse中粘贴而加到项目的libs下面的。

现在先要去添加对应的代码,以便调试时,对应函数可以找到源码。

【解决过程】

1.继续参考之前的:

【记录】在Eclipse中给ANTLR添加源码实现ANTLR的源码级的调试

但是发现:

此处,在执行到对应的函数时,在Class File Editor中,没有看到那个 Change Attached Source的按钮。

但是后来发现是:

在非调试期间,Ctrl+鼠标单击,对应的函数,在弹出的Class File Editor中是没有Change Attached Source的按钮的。

2.而后来去调试期间,F5单步:

f5 for UsbSerialProber.findSupportedUsbSerialDevice

的话,是可以看到有:

for source class file editor can see attach source

4.这样的话,就可以去添加对应的源码了:

attch source add location path for jar

然后就去加载了:

operation in progress for find delvik system basedexclassloader

结果竟然找不到:

source not found for basedexclassloader

5.后来才注意到,原来此处,正在load的不是我上面单步的那个

UsbSerialProber.findSupportedUsbSerialDevice

而是:

dalvik.system.BaseDexClassLoader

所以:

继续执行,直到Class File Editor去找

UsbSerialProber

findSupportedUsbSerialDevice:

时:

now run into usbserialprober

再去加载对应的源码,但是很明显,此处却没 了对应添加源码的按钮了。

没法添加了。。。

6.感觉好像是那句:

The JAR of this class file belong to container ‘Android Dependencies’ which does not allow modifications to source attachments on its entries.

而使得没法添加源码?

去研究看看:

【已解决】Android的ADT调试期间出现提示:The Jar of this class file belongs to container ‘Android Dependencies’ which does not allow modifications to source attachments on its entries

 

【总结】

最终的办法是:

在调试期间,即Debug视图下,

右击那个Debug的Tab中的当前的Thread

Edit Source Lookup->Default->Add->Java Project->选择你的jar所对应的源码所在的项目->OK->OK

再继续debug或者是重新debug,即可实现:F5可以进入对应的源码,进行源码调试了。

提示:

个人猜测:

即使你没有源码所对应的项目,估计通过添加对应的文件夹(Absolute File Path或File System Directory之类的),应该也是可以添加源码的。

详见:

【已解决】Android的ADT调试期间出现提示:The Jar of this class file belongs to container ‘Android Dependencies’ which does not allow modifications to source attachments on its entries



发表评论

电子邮件地址不会被公开。 必填项已用*标注

无觅相关文章插件,快速提升流量