美文网首页学习之鸿蒙&Android开源库学习
Android 关于全局捕获异常那些事(bugly)

Android 关于全局捕获异常那些事(bugly)

作者: 珹_ | 来源:发表于2021-07-18 17:48 被阅读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/

    相关文章

      网友评论

        本文标题:Android 关于全局捕获异常那些事(bugly)

        本文链接:https://www.haomeiwen.com/subject/pzjapltx.html