App线上发布之后,时常遇到客户使用过程中遇到bug,而通常我们不可能去拿用户的手机查看日记,而服务器上又没有上传bug日记接口的小伙伴们十分苦恼这怎么查找bug所在位置,一款腾讯Bugly就很好解决了这个问题,能够及时准备收集每个app客户端遇到的bug,给出崩溃分析和ANR异常上报内容,使我们能够在控制台上精确的找到Bug原因和所在位置,及时修复程序。
1.官网下载Demo: https://bugly.qq.com/v2/;
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:
参数配置
- 在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);
Bug查看并处理
登录到控制台并选择要查看的App:
点击查看某个异常,修复bug后可在右边改变修修改状态:
androidstudio快速查找bug所在处
复制出现异常的类名,进入到androidstudio软件,快捷键ctrl+shit+F 可全局查找(如果没有效果,请检查输入法时候占用了该快捷键,小木子就是因为输入法冲突找了许久才找出这个快捷键);
然后进入到类中:快捷键Ctrl+G 输入行数就可以定下到Bug所在处。
然后,就是改那该死的bug!