• 通过输出日志到文件来检查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闪退等错误时,上面的方法一定能帮上你。

  • 相关阅读:
    HBASE列族不能太多的真相 (一个table有几个列族就有几个 Store)
    Linux虚拟机添加新硬盘的全程图解
    Servlet 单例多线程
    MapReduce类型与格式(输入与输出)
    hbase集群的启动,注意几个问题
    spring 的IoC的个人理解
    深入Java核心 Java中多态的实现机制(1)
    spring mvc 请求转发和重定向(转)
    XML中<beans>中属性概述
    hadoop+javaWeb的开发中遇到包冲突问题(java.lang.VerifyError)
  • 原文地址:https://www.cnblogs.com/kinglandsoft/p/12549017.html
Copyright © 2020-2023  润新知