本文整理自网络,侵删。
利用Delphi 开发app,经常遇到启动App就会卡死,或着闪退的情况,这种bug,最好的处理办法就是进入调试状态运行app,这样就会看到异常信息,再进一步查到出问题的代码。
对于大的项目,无法进入Debug状态运行,那只有利用Log.d的来记录日志,这是个相对麻烦的问题,不过也能解决问题,具体如何利用Log.d来记录日志,可以看Aone的文章,在这里。当然,也可以利用kbmMW提供的免费工具kbmLogCat来查看Log.d的输出结果。通过分析日志来查找出问题的代码。
今天我遇到问题,是另外一种情况:先说结论,项目使用了ChinaCock的推送,在DataModule上放置了推送控件,由于没有发布使用的相关文件,造成在建立DataModule实例时,卡死了!不出错,也不闪推,就是卡在那里,一直显示Gif动画。
接一下来,说说跟踪过程,从开始显示Gif动的那行代码,为每行代码前加上Log.d,看执行到哪行代码卡死了,结果发现就是卡死在DM=TDataModule.Create(Application)这一行,本以为在DataModule.OnCreate事件中的代码有问题,于是为该事件的代码也加Log.d,结果发现,根本就没有执行该事件就卡死了!这时候想,以前好用的,现在不好用,有什么变化呢,打开DM,发现加了推送控件,猜应是他的原因。发布用到的文件,问题解决。
这种情况,是个难以处理的问题,因为不产生异常,换句话说,因为推送控件加到DataModule上,在加载这个DataModule时就卡死。现分享出来,让你也少走这个弯路。
来源:http://blog.sina.com.cn/s/blog_44fa172f0102wx0e.html
相关阅读 >>
Delphi getprocessidentity 获取当前登录状态的管理员
Delphi 解析Delphi中的loadlibrary,getprocaddress,freelibrary
Delphi 错误no ftp list parsers have been registered
更多相关阅读请进入《Delphi》频道 >>