Android 关于全局捕获异常那些事(bugly)
2021-07-18 本文已影响0人
珹_
开篇还是这句话 百度上有很多滴 一查就查到了
我只是开发的时候遇见了 就写下来 省着忘记了
当然独乐乐不如众乐乐
以下是关于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/