app/src/main/java/net/nashlegend/sourcewall/util/CrashReporter.java
(开头部分) 5KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
package net.nashlegend.sourcewall.util;
import android.content.Context;
import android.util.Log;
import net.nashlegend.sourcewall.BuildConfig;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.Writer;
import java.lang.Thread.UncaughtExceptionHandler;
import java.nio.charset.Charset;
/**
* 将下面两行添加到APP的Application文件的onCreate()方法里。
* CrashReporter crashReporter=new CrashReporter(getApplicationContext());
* Thread.setDefaultUncaughtExceptionHandler(crashReporter);
* 如果需要Application处理崩溃问题,比如关闭应用程序,则需要调用如下:
* crashReporter.setOnCrashListener(xxx);
* 如果在CrashListener.onCrash()里面想调用系统默认的Force Close对话框,可做如下操作:
* 在执行Thread.setDefaultUncaughtExceptionHandler (crashReporter)之前先定义一个系统默认的
* UncaughtExceptionHandler mUncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
* 然后在CrashListener.onCrash()里面添加mUncaughtExceptionHandler
* .uncaughtException(thread, ex);
*
* @author NashLegend
*/
@SuppressWarnings("ResultOfMethodCallIgnored")
public class CrashReporter implements UncaughtExceptionHandler {
private Context mContext;
private CrashListener onCrashListener;
public CrashReporter(Context context) {
mContext = context;
}
/*
* 发生未能捕获错误的时候调用。
*/
@Override
public void uncaughtException(Thread thread, Throwable ex) {
String infoString = "";
long threadId = thread.getId();
infoString += ("ThreadInfo : Thread.getName()=" + thread.getName()
+ " id=" + threadId + " state=" + thread.getState() + "\n");
try {
final Writer result = new StringWriter();
final PrintWriter printWriter = new PrintWriter(result);
ex.printStackTrace(printWriter);
String stacktrace = result.toString();
infoString += stacktrace;
infoString += "\n";
infoString += "Cause : \n";
infoString += "======= \n";
后面还有 135 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
