美文网首页Android 开发技术分享
全局捕获异常笔记(腾讯bugly)

全局捕获异常笔记(腾讯bugly)

作者: i小灰 | 来源:发表于2020-04-18 10:56 被阅读0次

    总体步骤按照腾讯bugly官方文档为准

    地址: https://bugly.qq.com/

    • 1.添加依赖
    implementation 'com.tencent.bugly:crashreport:latest.release'
    
    • 2.在清单文件中添加权限
    <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"/>
    
    • 3.创建一个捕获全局异常类 (名字自定义,最好见名识意)
    package com.bw.ph;
    import android.os.Build;
    import android.os.Process;
    import android.util.Log;
    
    /**
     * @Title:
     * @Description:捕获全局异常类(以单例模式)
     * @author: Mr.Pan
     * @date: 2020-04-18 10:10
     */
    public class MyUncaugExceptionHandler implements Thread.UncaughtExceptionHandler{
        private static final String TAG = "MyUncaugExceptionHandle";
        private static MyUncaugExceptionHandler inctance;
    
        public MyUncaugExceptionHandler() {}
    
        public static MyUncaugExceptionHandler getInctance() {
            if (inctance == null) {
                inctance=new MyUncaugExceptionHandler();
            }
    
            Thread.setDefaultUncaughtExceptionHandler(inctance);
            return inctance;
        }
    
        @Override
        public void uncaughtException(Thread t, Throwable e) {
    
            Log.d(TAG, "uncaughtException: "+e.getMessage());
    
            //收集异常信息
           String model= Build.MODEL;
           String brand= Build.BRAND;//手机品牌
           int sdkInt = Build.VERSION.SDK_INT;//SDK版本
           //打印日志
            Log.d(TAG, "uncaughtException:== "+model);
            Log.d(TAG, "uncaughtException:== "+brand);
            Log.d(TAG, "uncaughtException:== "+sdkInt);
    
            //杀死线程退出App   没有这行代码会卡死ANR
            Process.killProcess(Process.myPid());
        }
    }
    
    • 4.自定义Application 填写产品ID 例如下图 --- 在产品设置中找到
      也可以在清单文件中配置产品ID 各选其一


      dahui.png
    package com.bw.ph;
    import android.app.Application;
    import com.tencent.bugly.crashreport.CrashReport;
    
    public class App extends Application {
        @Override
        public void onCreate() {
            super.onCreate();
    
            MyUncaugExceptionHandler.getInctance();
            //第一个参数是上下文,第二个是注册时申请的APPID 第三个调试时设置为false 上市时设置为true
            CrashReport.initCrashReport(getApplicationContext(), "21f6f4290b", true);
        }
    }
    

    相关文章

      网友评论

        本文标题:全局捕获异常笔记(腾讯bugly)

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