我在我的应用程序中创建了多个 Activity 和 Fragments 以及不同的线程。有时很难预测应用程序崩溃。 有什么可以帮助我在 Main Activity 或 Manifest 级别全局捕获所有崩溃吗?
尝试在所有 Activity 中放置 try catches,以便捕获其子 Fragment 中发生的任何崩溃。但不幸的是它没有发生。
您可以在应用程序级别注册崩溃处理程序 我建议在您的应用程序类中使用此代码
public class CrashHandler implements Thread.UncaughtExceptionHandler {
public static final String TAG = CrashHandler.class.getSimpleName();
private static CrashHandler instance = new CrashHandler();
private Context mContext;
private CrashHandler() {
}
public static CrashHandler getInstance() {
return instance;
}
public void init(Context context) {
mContext = context;
Thread.setDefaultUncaughtExceptionHandler(instance);
}
@Override
public void uncaughtException(Thread t, Throwable e) {
//crash info and exceptions here
}
}
在你的应用程序类中
public App extends Application{
@Override
public void onCreate() {
super.onCreate();
CrashHandler.getInstance().init(this);
}
}
最后一步,在您的 android 清单文件中注册您的所有者自定义应用程序类