是否可以使用 Crashlytics 在崩溃后自动重启应用程序?不幸的是,文档中没有关于该主题的内容。我定义了我自己的异常处理程序,它正在重新启动应用程序,但是当我使用它时,崩溃日志没有被发送。
最佳答案
在您的自定义异常处理程序中,您可以调用 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 .
关于android - 使用 Crashlytics 在崩溃后重启应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49680973/