Android 关于全局捕获异常那些事(bugly)
开篇还是这句话 百度上有很多滴 一查就查到了
我只是开发的时候遇见了 就写下来 省着忘记了
当然独乐乐不如众乐乐
以下是关于bugly的自述
专业、全面的异常监控和解决方案,可以让您及时发现应用的异常,并通过丰富的现场信息帮您快速定位和解决问题。
白话文来讲 就是帮你更加方便的 把你的bug集中起来 方便查看和解决 我觉得吧 谁的项目能没有点bug呢 (狗头保命)
其实在bugly上面看到的有些问题 并不影响运行
废话说完 该步入正题了
1、当然是添加依赖
//其中latest.release指代最新版本号,也可以指定明确的版本号implementation 'com.tencent.bugly:crashreport:latest.release'
2、创建一个全局捕获异常类
package com.cheng.update;import android.os.Build;import android.os.Process;import android.util.Log;/** * @Title: * @Description: * @author: Cheng * @date: */public class ErrorController implements Thread.UncaughtExceptionHandler{ private static final String TAG = "ErrorController "; private static ErrorController inctance; public ErrorController () {} public static ErrorController getInctance() { if (inctance == null) { inctance=new ErrorController (); } Thread.setDefaultUncaughtExceptionHandler(inctance); return inctance; } @Override public void uncaughtException(Thread t, Throwable e) { Log.d(TAG, "errorcontroller : "+e.getMessage()); String tags = Build.TAGS; //发行版本 String board = Build.BOARD;//主板信息 String model = Build.MODEL;//手机型号 String brand = Build.BRAND; //手机名称 String sdk = Build.VERSION.SDK; //SDK String cpuAbi = Build.CPU_ABI;//CPU位数 String fingerprint = Build.FINGERPRINT;//手机系统信息 String release = Build.VERSION.RELEASE; //安卓版本 String id = Build.ID;//版本号 //没有这行代码会ANR 退出 Process.killProcess(Process.myPid()); }}
3、自定义Application 填写产品App ID
package com.cheng.update;import android.app.Application;import com.tencent.bugly.crashreport.CrashReport;public class MyApp extends Application { @Override public void onCreate() { super.onCreate(); MyUncaugExceptionHandler.getInctance(); //测试时设置为false 上线时设置为true CrashReport.initCrashReport(getApplicationContext(), "你的App ID", true); }}
4、别忘记添加权限
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><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"/>
别忘记在清单文件中配置你自定义的 Application 哦
android:name=".MyApp"
这样跑一下你的项目 看看吧
希望这篇文章能帮助到你
具体请参考官方地址: https://bugly.qq.com/
作者:珹_
链接:https://www.jianshu.com/p/3e99123eb685
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。