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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/414358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android 获取天气数据

/** * 天气API * param cityname * return */ private String getUrl(String cityname){ return "http://wthrcdn.etouch.cn/weather_mini?city"cityname; } 传入城市,即可返回天气数据

windows下dos窗口实现持续ping显示时间保存至日志

效果图 右击新建 ping.bat 文件(ping为文件名称,随便起),内容如下: cscript ping.vbs 127.0.0.1 -t >log.txt127.0.0.1 修改为你自己的ip地址,log 为记录日志的文件名 右击新建 ping.vbs 文件&#x…

HDU.3652.B-number(数位DP)

题目链接 \(Description\) 求\([1,n]\)中十进制表示包含"13"这个子串&#xff0c;且能整除13的数的个数。 \(Solution\) 数位DP: dp[位][s(pre/have"13")][remainder],上界由DFS状态记录. //15MS 1520K #include <cstdio>int n,A[13],f[13][3][13]; …

AndroidStudio中Flutter打包APK

1、生成签名文件 在打包之前我们需要一个签名文件&#xff0c;证明文件的唯一性。 keytool -genkey -v -keystore F:\APP\sign.jks -keyalg RSA -keysize 2048 -validity 10000 -alias signF:\APP\sign.jks为签名问价存放目录&#xff0c;sign 为密钥名。 后面都有用&#x…

Codeforces #471

C(分段) 题意&#xff1a; 分析&#xff1a; 我们分别考虑p2和p>3的情况  当p2的时候&#xff0c;个数明显是[L,R]内完全平方数的个数 当p>3的时候&#xff0c;我们注意到这样的数字个数是1e6级别的&#xff0c;且a最多也不超过1e6 我们可以对于每个a去枚举对应的p&…

Thinkpad Access Connections实现快速的在各种网络间进行切换

Thinkpad Access Connections快速的在各种网络间进行切换因为工作的原因要经常在多个无线或有线之间切换&#xff0c;每次要切换到不同的固定IP地址的网络更是一种折磨&#xff0c;换一次就要从新输入一次IP地址&#xff0c;Windows下有没有像Linux的NetworkManage那样的网络管…

TextView does not support text selection. Selection cancelled. 。TextViews复制文本失效解决方法

解决方法 前人种下了种子—— android:descendantFocusability"blocksDescendants" 去掉这个属性即可

15-Flutter移动电商实战-商品推荐区域制作

1、推荐商品类的编写 这个类接收一个List参数&#xff0c;就是推荐商品的列表&#xff0c;这个列表是可以左右滚动的。 /*商品推荐*/class Recommend extends StatelessWidget { final List recommendList; Recommend({Key key, this.recommendList}) : super(key: key);} 2…

Python无法导入Cython的.pyx文件

在import 相应包之前, 添加: import pyximport pyximport.install() 即可. 转载于:https://www.cnblogs.com/ZhengPeng7/p/8706657.html

gradle sync failed——Android studio 突然就无法自动下载gradle了

不知道按到了什么鬼&#xff0c;或者新安装了Android studio 无法使用 正常gradle文件位置是不需要修改的 android studio会自动配置 出现这个错误&#xff0c;就需要收到补全gradle文件路径配置即可 1、查看项目gradle版本 2、补全即可——加上后面这段对应项目里的版本的文件…

16-Flutter移动电商实战-切换后页面状态的保持AutomaticKeepAliveClientMixin

底栏切换每次都重新请求是一件非常恶心的事&#xff0c;flutter 中提供了AutomaticKeepAliveClientMixin 帮我们完成页面状态保存效果。 1、AutomaticKeepAliveClientMixin AutomaticKeepAliveClientMixin 这个 Mixin 是 Flutter 为了保持页面设置的。哪个页面需要保持页面状态…

js ejs for语句的第二种遍历用法

var A {a:1,b:2,c:3,d:"hello world"};for(var k in A) {console.log(k,A[k]);var h new EJS({element:ejs_render_id}).render(render);}return;转载于:https://www.cnblogs.com/pansidong/p/8708245.html

Android 串口开发——粘包解决方法,定时查询心跳数据,解析心跳数据。——持续更新中

粘包解决方法 方法1 getXOR——是校验方法 /*** 最小数据包的长度(除开数据的N个字节&#xff09;* 帧头 保留字节 协议控制字 地址字段 命令长度 命令码 命令数据 校验和* 2字节 3字节 1字节 2或8字节 2字节 2字节 0-1100字…

17-Flutter移动电商实战-首页_楼层区域的编写

1、楼层标题组件 该组件非常简单&#xff0c;只接收一个图片地址&#xff0c;然后显示即可&#xff1a; class FloorTitle extends StatelessWidget {final String picture_address;FloorTitle({this.picture_address});overrideWidget build(BuildContext context) {return …

webdriver高级应用- 无人工干预地自动下载某个文件

在网页上下载文件时&#xff0c;通常需要人为设定下载文件并选择保持路径&#xff0c;这样就无法实现完全自动的下载过程。下面实现基于firefox浏览器的全自动化文件下载操作&#xff1a; #encodingutf-8 from selenium import webdriver import unittest, timeclass TestDemo(…