单独更新adt-bundle-windows-x86的ADT插件的问题

今天在使用adt-bundle-windows-x86时,发现ADT插件可以更新到22.0.1,于是就Down了一个zip包,更新了一下。注:原来是直接下载的集成环境,自带ADT21.xxx。

更新完了后,继续敲点Android代码。

随后,单步调试一个新线程时,在run方法中第一句打一个断点,按道理来说,启动线程后,程序肯定能在这个点停下来。可多次尝试使终进不了,就好像这段代码不存在一样。

没有办法,就尝试在一个Activity中随便加一个按钮,看一下是不是环境有点问题。于是就加了,问题出现了,新加的按钮id,不能自动被生成到R.java中去,新加的String资源,不能被识别。但是相关资源文件却没有显示错误,也保存了。当切换布局到Graphical Layout界面时,新按钮出现了,就是text属性不能自动关联到string资源上去。

在手机上Debug这个工程,新加的按钮不出现,就好像使用的APK不是这一次编译出来的,而是加按钮前的APK。

尝试关闭工程,再打开,问题依旧。尝试Clean工程,结果导致R.java文件都不出来了。

最后,去网站Down一个集成的adt-bundle-windows-x86环境,自带ADT22.0.1,再把相同的工程导入,问题不现复现。

因为在IDE中看到的代码是新写的,也保存了,在Graphical Layout界面也看到了一点更新,但在Debug时,出现的东西却是没改代码之前的。也就是说,在调试新线程时,手机中运行的代码根本就还是在运行一个空的run方法。如此情况,实现太有迷惑性了。

一开始没往环境上去想,导致整个过程浪费的时间比较多。感觉,遇到这种问题,比如要出现的Log不出现,要断点的地方不停,那么可以尝试弹出一些必现的对话框,或更新一下现有界面,这样就能快速确定,你当前调试的代码和你在IDE环境中看到的代码是否一致。

这个方法我在VisualStudio中调试程序也经常用到,有时Log就是打不出来,搞得你不确定你的代码有没有运行到,但你在要打Log的地方弹一个MessageBox,就很好的验证这一点。

posted @ 2013-06-10 23:57  weichen2046  阅读(788)  评论(0编辑  收藏  举报