通过输出日志到文件来检查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:b.log,这在D盘生成bb.log文件。如下图,如果没有操作文件的权限,则会提示“拒绝访问”,如果没有接好手机,会提示-waiting for device-

 如果手机联接好了,也有权限,这里不会有提示的。

5.现在运行app,操作出“闪退”。

6.回到cmd,按CTRL+C,中止log输出,这时候,生成对应的日志文件。

7.打开这个文件,查看其中的内容,你就会找到出错的原因了!经验:搜 java.lang

用这种方法,我们就可以远程捕获用户现场的日志,具体说,

1.在本机把C:UsersPublicDocumentsEmbarcaderoStudio20.0PlatformSDKsandroid-sdk-windowsplatform-tools文件夹下面的

adb.exe

AdbWinApi.dll

AdbWinUsbApi.dll

三个方法发布到用户机器上。

2.然后,就可以按上面的步骤远程收集日志。

使用kbmMW提供的日志框架,还可以自己写日志,这会极大的方便我们分析问题:

uses 
  kbmMWLog;
...
kbmMWLog.Log.Debug('初始化出错:'+AException.Message);

 好了,该写的都写了,当遇到用户反应app闪退等错误时,上面的方法一定能帮上你。

原文地址:https://www.cnblogs.com/kinglandsoft/p/12549017.html