本人测试人员,想找个能获取程序闪退原因的方法。
情况是这样的,在测试公司产品时,程序偶尔会发生闪退,是偶发的,不能必现,不必现的问题,开发是不会重视的,所以就想找到程序闪退的原因,以引起开发的重视程度。
我们想到的方法就是获取程序闪退时的log日志。先是用logcat命令获取到设备的日志,但实在太多了,也分不清哪些是公司产品产生的日志。
然后就利用eclipse中logcat,对日志进行筛选,这种方法可以获取到指定产品的log,但是在闪退时,只报出了一个"I"级别的log,也没什么用。
个人觉得,闪退时应该会有级别高的log吧,如果有怎么获取,如果没有,有什么方法可以查到闪退的原因,直观原因就行。
跪求各位大神的指教!

解决方案 »

  1.   

    大多数的app闪退都是因为代码执行异常并且未被捕捉并处理导致的。所以一般闪退的时候都会有红色也就是错误日志的。
      

  2.   


    一直没有捕获到红色的错误日志
    筛选的方法是通过application筛选的,只输入了application的名称,难道是我方法出错了?
      

  3.   

    在完整的log里面搜索fatal exception、 crash、 exception 、error 、kill
      

  4.   

    这个简单,android app有自定义的奔溃异常处理类,让开发去继承实现把奔溃的log信息记录下来就行了
      

  5.   


    如何看呢,日志里没有报
    你可以把log贴出来吗?
      

  6.   

    我遇到的情况是,出现闪退,立刻拔掉手机,log中就会有E级别的LOG,插上的时候就没有,虽然不正常,但是你可以试一试
      

  7.   

    应该让开发在程序中加入一个功能,把Crash时候的log写到手机本地的日志文件中
      

  8.   

    百度搜bugly 你值得拥有!!!!
      

  9.   

    找你们开发 crashhandler
      

  10.   

    我自己的程序也出现过闪退。
    我是通过处理异常(如楼上所说实现crashhandler处理)日志看的,一般都能看到错误问题啊。
      

  11.   

    logcat里都会有错误提示 的呀。
      

  12.   

    第一次部署到手机会闪退, 再次启动不闪退日志显示是被系统强杀的!!!!
    02-08 17:14:36.545 3086-3833/? I/ActivityManager: Force stopping cn.mss.three appid=10120 user=0: from pid 17787
    02-08 17:14:36.545 3086-3833/? I/ActivityManager: Killing 17572:cn.mss.three/u0a120 (adj 0): stop cn.mss.threefrom pid 17787
    02-08 17:14:36.545 3086-3833/? I/ActivityManager: restoreDTSAndHSState success!unknown
    02-08 17:14:36.550 3086-3833/? W/ActivityManager: Force removing ActivityRecord{435ae6e8 u0 cn.mss.three/ui.WelcomeActivity t73}: app died, no saved state
    02-08 16:58:02.825 3465-3478/? W/Binder: Caught a RuntimeException from the binder stub implementation.
                                             java.lang.NullPointerException
                                                 at android.inputmethodservice.IInputMethodWrapper.setSessionEnabled(IInputMethodWrapper.java:280)
                                                 at com.android.internal.view.IInputMethod$Stub.onTransact(IInputMethod.java:129)
                                                 at android.os.Binder.execTransact(Binder.java:404)
                                                 at dalvik.system.NativeStart.run(Native Method)
    02-08 16:58:02.825 3465-3478/? W/System.err: java.lang.NullPointerException
    02-08 16:58:02.825 3465-3478/? W/System.err:     at android.inputmethodservice.IInputMethodWrapper.setSessionEnabled(IInputMethodWrapper.java:280)
    02-08 16:58:02.825 3465-3478/? W/System.err:     at com.android.internal.view.IInputMethod$Stub.onTransact(IInputMethod.java:129)
    02-08 16:58:02.825 3465-3478/? W/System.err:     at android.os.Binder.execTransact(Binder.java:404)
    02-08 16:58:02.825 3465-3478/? W/System.err:     at dalvik.system.NativeStart.run(Native Method)
      

  13.   

    adb logcat | find "exception"   或者试试adb logcat | find "AndroidRuntime"
      

  14.   

    为了方便查看不是在调试的时候某些手机出现的崩溃闪退问题,最好是自己创建一个继承UncaughtExceptionHandler的类,然后在uncaughtException方法中对崩溃异常进行处理,最好把异常信息保存到本地,方便查看然后对之进行修复。
      

  15.   

    腾讯有个专门捕捉BUG的SDK ,bugly ,试试这个,感觉不错https://bugly.qq.com/v2/
      

  16.   

    一、手机crash之后,如果弹出的“应用程序意外停止”的提示如果没有消失,则可使用以下方法获取crash日志
    1、直接连上eclipse中的ddms进行crashlog的获取。
    2、或者通过命令获取:adb logcat –v time >E:\x.txt (-v time的意义是:打印出的log可以看到具体的时间)。
    二、手机crash之后,如果弹出的“应用程序意外停止”的提示如果消失,获取crash日志的方法
    1、adb bugreport >E:\xx.txt
    2、日志会保存到相应的目录中,打开日志文件搜索关键字”fatal exception”或”crash”即可找到相应的crash日志。