捕获崩溃日志

Capturing Crash logs

我正在编写自定义 UncaughtExceptionHandler 以正常结束应用程序。为了收集崩溃日志,我正在使用 Crashlytics。 objective 是

  1. 在自定义 Uncaughtexception 处理程序中收集崩溃日志。

  2. 将崩溃日志发送到 Crashlytics 服务器。

  3. 重新启动应用程序而不显示 "Force Close" 对话框。

为了实现这一点,我编写了以下代码,它似乎捕获了 UncaughtExceptions,但它没有将异常发送到 Crashlytics 服务器。

public class MyApplication 扩展应用程序{

Thread.UncaughtExceptionHandler mUEHandler;
Thread.UncaughtExceptionHandler mDefaultUEHandler;

@Override
public void onCreate() {
    super.onCreate();

    Fabric.with(this, new Crashlytics());

    mDefaultUEHandler = Thread.getDefaultUncaughtExceptionHandler();
    mUEHandler = new Thread.UncaughtExceptionHandler() {
        @Override
        public void uncaughtException(Thread t, Throwable e) {
            reEmergeFromCrash();
            Crashlytics.logException(e);
        }
    };

    Thread.setDefaultUncaughtExceptionHandler(mUEHandler);

    throw new RuntimeException("hello");
}
} 

哪里做错了?如何将捕获的崩溃日志发送到 Crashlytics。

想通了。 Crashlytics.logException() 确实记录了您捕获的异常,但是为了减轻应用资源的压力,Fabric 设计了 ​​Crashlytics 以在您下次打开应用时将记录的异常发送到服务器。