通过输出日志到文件来检查app闪退原因
按Delphi Teacher告诉我的,真是好用。直接说步骤了:
1.打开cmd窗口。
然后转到ADB.EXE所在目录,如下图:
如果你不知怎么找到这个目录,可以打开delphi ide-Tools->Options,如下图,Ctrl+C这个目录,转到cmd窗口,右键可以粘贴过来。(我是不是啰嗦了...)
2.接好你的手机,在Delphi IDE中取看到联接正常。
3.开始捕获日志前,清理一下手机内所有稳存的日志:adb logcat -c -b main -b events -b radio -b system
4.在cmd窗口,执行:adb logcat >C:\aa.log
这是在C盘生成aa.log日志文件,你可以随便写这个文件名,如adb logcat >D:\bb.log,这在D盘生成bb.log文件。如下图,如果没有操作文件的权限,则会提示“拒绝访问”,如果没有接好手机,会提示-waiting for device-
如果手机联接好了,也有权限,这里不会有提示的。
5.现在运行app,操作出“闪退”。
6.回到cmd,按CTRL+C,中止log输出,这时候,生成对应的日志文件。
7.打开这个文件,查看其中的内容,你就会找到出错的原因了!经验:搜 java.lang
用这种方法,我们就可以远程捕获用户现场的日志,具体说,
1.在本机把C:\Users\Public\Documents\Embarcadero\Studio\20.0\PlatformSDKs\android-sdk-windows\platform-tools文件夹下面的
adb.exe
AdbWinApi.dll
AdbWinUsbApi.dll
三个方法发布到用户机器上。
2.然后,就可以按上面的步骤远程收集日志。
使用kbmMW提供的日志框架,还可以自己写日志,这会极大的方便我们分析问题:
uses kbmMWLog; ... kbmMWLog.Log.Debug('初始化出错:'+AException.Message);
好了,该写的都写了,当遇到用户反应app闪退等错误时,上面的方法一定能帮上你。