新建类名字随意
public class MyChach implements Thread.UncaughtExceptionHandler {
private static MyChach instance;
private Context context;
private Thread.UncaughtExceptionHandler defaultUncaughtExceptionHandler;
private MyChach(){}
public static MyChach getInstance(){
if (Internal.instance==null){
instance = new MyChach();
}
return instance;
}
public void init(Context context){
this.context =context;
defaultUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
Thread.setDefaultUncaughtExceptionHandler(this);
}
@Override
public void uncaughtException(Thread t, Throwable e) {
if (defaultUncaughtExceptionHandler!=null){
defaultUncaughtExceptionHandler.uncaughtException(t,e);
}else {
android.os.Process.killProcess(android.os.Process.myPid());
}
Log.i("aaa","uncaughtException");
}
}
新建类名字随便起
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
CrashReport.initCrashReport(getApplicationContext(), "4cb3c57402", false);
}
}
在清单文件
android:name=".yichang.App"
权限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<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" />
依赖
implementation 'com.tencent.bugly:crashreport:latest.release'
在activity制作异常
yichang = findViewById(R.id.yichang);
yichang.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
throw new NullPointerException("不能为空");
}
});