App线上发布之后,时常遇到客户使用过程中遇到bug,而通常我们不可能去拿用户的手机查看日记,而服务器上又没有上传bug日记接口的小伙伴们十分苦恼这怎么查找bug所在位置,一款腾讯Bugly就很好解决了这个问题,能够及时准备收集每个app客户端遇到的bug,给出崩溃分析和ANR异常上报内容,使我们能够在控制台上精确的找到Bug原因和所在位置,及时修复程序。

android bug收集原理 android bugly_腾讯Bugly

1.官网下载Demo: https://bugly.qq.com/v2/

android bug收集原理 android bugly_android bug收集原理_02

2.官方Bugly Android SDK 使用指南
https://bugly.qq.com/docs/user-guide/instruction-manual-android/?v=20171123163535

集成SDK:在Module的build.gradle文件中添加依赖和属性配置:
dependencies {
    compile 'com.tencent.bugly:crashreport:latest.release' //其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如2.2.0
}
项目需求只集成了SDK:

android bug收集原理 android bugly_快捷键_03

参数配置

  • 在AndroidManifest.xml中添加权限:重点内容
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_LOGS" />
  • 请避免混淆Bugly,在Proguard混淆文件中增加以下配置:
    -dontwarn com.tencent.bugly.**
    -keep public class com.tencent.bugly.**{*;}

简单的初始化

首先点击右上角我的产品->新建产品->操作的设置进入产品的详细页面->
获取APP ID并将以下代码复制到项目Application类onCreate()中,Bugly会为自动检测环境并完成配置:

/* Bugly SDK初始化
  * 参数1:上下文对象
  * 参数2:APPID,平台注册时得到,注意替换成你的appId
  * 参数3:是否开启调试模式,调试模式下会输出'CrashReport'tag的日志
  */
CrashReport.initCrashReport(getApplicationContext(), "注册时申请的APPID", true);

android bug收集原理 android bugly_android bug收集原理_04

android bug收集原理 android bugly_bug_05

Bug查看并处理

登录到控制台并选择要查看的App:

android bug收集原理 android bugly_android bug收集原理_06

点击查看某个异常,修复bug后可在右边改变修修改状态:

android bug收集原理 android bugly_快捷键_07

androidstudio快速查找bug所在处

复制出现异常的类名,进入到androidstudio软件,快捷键ctrl+shit+F 可全局查找(如果没有效果,请检查输入法时候占用了该快捷键,小木子就是因为输入法冲突找了许久才找出这个快捷键);

android bug收集原理 android bugly_bug_08

android bug收集原理 android bugly_快捷键_09

然后进入到类中:快捷键Ctrl+G 输入行数就可以定下到Bug所在处。
然后,就是改那该死的bug!