1、登录腾讯bugly平台创建应用

腾讯Bugly - 一种愉悦的开发方式 _android anr_android anr分析_iOS崩溃日志分析平台

2、1加载依赖

/*崩溃处理 */
implementation 'com.tonystark.android:defense_crash:2.0.0'
//bugly
implementation 'com.tencent.bugly:crashreport_upgrade:1.3.5'implementation'com.tencent.bugly:nativecrashreport:3.3.1'

2、2添加maven

maven { url 'https://dl.bintray.com/xuuhaoo/maven/' }

3、工具类

public class ForReportException extends Exception {public ForReportException() {}public ForReportException(String msg) {super(msg);}public ForReportException(String msg, Throwable throwable) {super(msg, throwable);}
}

4、实现捕获异常上报代码

public class App extends Application  implements IExceptionHandler {
 
    initBugly();
}private void initBugly() {CrashReport.initCrashReport(getApplicationContext(), "c50f1d7329", BuildConfig.DEBUG);
}
@Override
protected void attachBaseContext(Context base) {super.attachBaseContext(base);/**///MultiDex.install(this);// step1: Initialize the lib.DefenseCrash.initialize();// step2: Install the fire wall defense.DefenseCrash.install(this);
}@Override
public void onCaughtException(Thread thread, Throwable throwable, boolean b) {throwable.printStackTrace();/*todo 收集系统信息*//*todo 发送邮件*//*bugly 手动上报异常*/CrashReport.postCatchedException(throwable);
}@Override
public void onEnterSafeMode() {LogPlus.d("###########onEnterSafeMode###########");
}@Override
public void onMayBeBlackScreen(Throwable throwable) {/*重启app*/Thread thread = Looper.getMainLooper().getThread();CrashReport.postCatchedException(new ForReportException("onMayBeBlackScreen", throwable));restartApp();
}/*** 重启app*/
public void restartApp() {Intent mStartActivity = new Intent(this, MainActivity.class);int mPendingIntentId = 123456;PendingIntent mPendingIntent = PendingIntent.getActivity(this, mPendingIntentId, mStartActivity, PendingIntent.FLAG_CANCEL_CURRENT);AlarmManager mgr = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 100, mPendingIntent);System.exit(0);
}

主动抛出异常

throw new IllegalStateException("setDefaultFrameFormat should be call before initMonitor");

5、登录bugly平台即可查看到所有APP的异常日志,定位去解决效果

String sendstring = stringBuffer.toString();Throwable throwable = new Throwable(sendstring);CrashReport.postCatchedException(throwable);//上报到bugly

@Override
public void onCaughtException(Thread thread, Throwable throwable, boolean b) {CrashReport.postCatchedException(throwable);
}@Override
public void onEnterSafeMode() {}@Override
public void onMayBeBlackScreen(Throwable throwable) {CrashReport.postCatchedException(throwable);/*重启APP*/restartApp();
}/*** 重启app*/
public void restartApp() {Intent mStartActivity = new Intent(this, SplashScreenActivity.class);int mPendingIntentId = 123456;PendingIntent mPendingIntent = PendingIntent.getActivity(this, mPendingIntentId, mStartActivity, PendingIntent.FLAG_CANCEL_CURRENT);AlarmManager mgr = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 100, mPendingIntent);System.exit(0);
}

实现demo:android开发,异常处理,捕获异常上传到bugly,捕获异常库module-Android文档类资源-CSDN下载

bug交流:QQ  1085220040

Android 捕获异常,上报异常日志,捕获奔溃日志,bugly使用实例相关推荐

  1. Android ExceptionThrowable 常见异常和解决方法 奔溃日志上报 monkey异常修改

    java将所有的错误封装为一个对象,其根本父类为Throwable, Throwable有两个子类:Error和Exception. 注意:异常和错误的区别:异常能被程序本身可以处理,错误是无法处理. ...

  2. Android之抓取adb logcat全日志后怎么过滤掉只包含当前app进程的日志(一般抓启动app奔溃日志)

    1 .问题 有时候我们启动APP的时候,APP奔溃,在android studio里面日志可能冲掉,或者是云平台的手机安装的app,根本就没有android stduio,那我们用什么办法快速知道启动 ...

  3. Android之看起来像奔溃了但是没有发现奔溃日志

    1.问题 startActivity之后,然后finish,发现输入密码文本框密码没了,以为奔溃了,但是没有发现奔溃日志 2.思考 我想是不是因为调用蓝牙API结束后还有哪些没有写,往第三方API思考 ...

  4. 使用DDMS抓取安卓APP的奔溃日志

                                   使用DDMS抓取安卓APP的奔溃日志 一.什么是DDMS DDMS 的全称是Dalvik Debug Monitor Service,是 ...

  5. 使用breakpad收集native奔溃日志及dump解析

    使用breakpad收集native奔溃日志及dump解析 本文是学习使用breakpad的一个总结,在这过程中看了很多博客,但是相对有用的有以下几篇: Android使用Google Breakpa ...

  6. android奔溃日志手机查看

    开原地址:https://github.com/simplepeng/SpiderMan SpiderMan能为您做的事: 在Android手机上显示闪退崩溃信息,直接分享给相关开发人员! 再也不用担 ...

  7. ios奔溃日志 异常代码 0x8badf00d

    Termination Reason: Namespace SPRINGBOARD, Code 0x8badf00d 异常代码 0x8badf00d 指示应用程序已终止的 iOS 因为看门狗超时发生. ...

  8. Android之华为手机打开app奔溃提示java.io.FileNotFoundException: res/drawable/abc_vector_test.xml

    1.问题 新建立的项目,华为手机运行起来提示如下 06-24 18:24:03.175 13314 13314 E AndroidRuntime: java.lang.RuntimeException ...

  9. android 抓取native层奔溃

    使用android的breakpad工具 使用这个工具需要下载Breakpad的源码,然后进行编译,编译之后会生成两个工具 我们使用这两个工具来解析奔溃的位置.这里我们可以下载已经编译好的工具 下载地 ...

最新文章

  1. 利用python实现Windows8定时自动关机和休眠
  2. Kotlin 协程:简单理解 runBlocking, launch ,withContext ,async,doAsync
  3. Qt操作SQLite数据库练习(20200215)
  4. 大华webplugin控件无法安装_大华监控平台SmartPSS如何上电视墙,一文包你学会
  5. 工作32:get之前打印
  6. 三行代码生成验证码并转换成base64
  7. vs升级c++项目遇到的一些问题
  8. SQL:插入数据的小坑
  9. 操作系统课设 Nachos 实验三:利用信号量实现线程同步
  10. 脉冲耦合神经网络(PCNN)-pulse coupled neural network
  11. 动手学深度学习(tensorflow)---学习笔记整理(五、过拟合和欠拟合相关问题篇)
  12. python中换页是干嘛的_python什么是转页符
  13. python 100以内的奇数和_python入门:输出1-100之内的所有奇数和偶数
  14. 时序动作检测SSAD《Single Shot Temporal Action Detection》
  15. java 拼音_GitHub - promeG/TinyPinyin: 适用于Java和Android的快速、低内存占用的汉字转拼音库。...
  16. java 给图片添加水印文字
  17. saltstack python3_SaltStack事件驱动(3) – BEACONS
  18. 【OVS2.5.0源码分析】sFlow实现分析(3)
  19. UI电话图标设计教程
  20. python 在南京发展_南京和杭州,哪一座城市潜力大?

热门文章

  1. [html] 使用svg画一个微信的logo
  2. [vue] 组件和插件有什么区别?
  3. 工作99:任务加1逻辑
  4. 工作总结3:axios里面的主要参数
  5. 前端学习(2241):react打卡倒计时十五天之react出现背景
  6. 第一百二十八期:推荐几个IDEA插件,Java开发者撸码利器,你get到了吗
  7. mongo:(3)windows上mongoDB安装
  8. linux(3):Linux MBR分区、挂载操作步骤,逻辑卷扩容操作
  9. CSS之background-position属性
  10. [资源]推荐一些Python书籍和教程,入门和进阶的都有!