学习之鸿蒙&Android开源库学习

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/

上一篇下一篇

猜你喜欢

热点阅读