Debugging 如何从Flatter应用程序发送打印日志?

Debugging 如何从Flatter应用程序发送打印日志?,debugging,flutter,Debugging,Flutter,如何获取打印控制台日志和屏幕截图,以便将堆栈跟踪发送到服务器?您可以使用本机代码获取视图的屏幕截图 在Android上:Bitmap屏幕截图=flatterview.getBitmap() 在iOS上,请看苹果的这一点 请参阅有关混合Dart和本机代码的文档 关于堆栈跟踪,下面是文档中的一些提示 要从颤振内获取堆栈跟踪,请覆盖onError处理程序: FlutterError.onError = (FlutterErrorDetails details) async { throw de

如何获取
打印
控制台日志和屏幕截图,以便将堆栈跟踪发送到服务器?

您可以使用本机代码获取视图的屏幕截图

  • 在Android上:
    Bitmap屏幕截图=flatterview.getBitmap()
  • 在iOS上,请看苹果的这一点
请参阅有关混合Dart和本机代码的文档

关于堆栈跟踪,下面是文档中的一些提示

要从颤振内获取堆栈跟踪,请覆盖
onError
处理程序:

FlutterError.onError = (FlutterErrorDetails details) async {
  throw details;
};
要使用捕获所有Dart异常的错误处理程序创建区域,请将对
runApp
的调用包装到:

runZoned(()异步{
runApp(新的MyApp());
},onError:(错误,堆栈跟踪)异步{
如果(错误为错误详细信息){
//使用error.exception和error.stack
}否则{
//使用错误和堆栈跟踪
}
});

您可以使用f_logs软件包,该软件包具有将日志导出到手机目录的功能,它有.db和.txt用于日志,然后您可以使用Flatter_archive软件包压缩文件,然后使用Flatter_email_sender向您的开发团队发送包含日志的zip文件。这对我们很有效,希望这会有所帮助。

也有很好的例子。
runZoned<Future<Null>>(() async {
  runApp(new MyApp());
}, onError: (error, stackTrace) async {
  if (error is FlutterErrorDetails) {
    // use error.exception and error.stack
  } else {
    // use error and stackTrace
  }
});