使用Crashlytics崩溃后是否可以自动重启应用?遗憾的是,文档中没有关于该主题的内容。我定义了自己的异常处理程序,它正在重启应用程序,但是当我使用它时,不会发送崩溃日志。
答案 0 :(得分:0)
在自定义异常处理程序中,您可以调用Craslytics.logException(exception);
。
public class MyExceptionHandler implements Thread.UncaughtExceptionHandler {
@Override
public void uncaughtException(Thread thread, Throwable exception) {
//you should also log the exception to logcat
Log.e(TAG, "UncaughtException", exception);
try {
//log to crashlytics
Crashlytics.logException(exception);
} catch (Exception e) {
Log.d(TAG, "uncaughtException: Crashlytics not initialized, cannot send logs.");
}
//exit with error code 1 (0 is normal program termination,
//which here is not the case)
System.exit(1);
}
}
值得注意的是,Crashlytics.logError(...)
将异常记录为"非致命"。因此,我通常将它们包装起来,以便将非致命异常与实际致命异常区分开来。
所以:
Crashlytics.logException(exception);
变为:
//wrap the original exception to your custom 'fatal' exception type.
FatalException fatalException = new FatalException(originalException);
//log with Crashlytics
Crashlytics.logException(fatalException);
来自开源应用here的示例。