Flutter的异常打印信息过滤,快速定位代码异常

项目地址

基于dart官方stack_trace开发

stack_trace打印

I/flutter ( 3068): PlatformException(error, Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference, null)
I/flutter ( 3068): package:flutter/src/services/message_codecs.dart 551:7     StandardMethodCodec.decodeEnvelope
I/flutter ( 3068): package:flutter/src/services/platform_channel.dart 292:18  MethodChannel.invokeMethod
I/flutter ( 3068): dart:async/future_impl.dart 22:43                          _Completer.completeError
I/flutter ( 3068): dart:async/runtime/libasync_patch.dart 40:18               _AsyncAwaitCompleter.completeError
I/flutter ( 3068): package:flutter/src/services/platform_channel.dart         MethodChannel.invokeMethod
I/flutter ( 3068): dart:async/zone.dart 1053:19                               _CustomZone.registerUnaryCallback
I/flutter ( 3068): dart:async/runtime/libasync_patch.dart 77:23               _asyncThenWrapperHelper
I/flutter ( 3068): package:flutter/src/services/platform_channel.dart         MethodChannel.invokeMethod
I/flutter ( 3068): package:fluttertoast/fluttertoast.dart 53:33               Fluttertoast.showToast

flutter_stack_trace打印

I/flutter ( 3068): PlatformException(error, Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference, null)
I/flutter ( 3068): package:flutter/src/services/message_codecs.dart 551:7     StandardMethodCodec.decodeEnvelope
I/flutter ( 3068): package:flutter/src/services/platform_channel.dart 292:18  MethodChannel.invokeMethod
I/flutter ( 3068): package:fluttertoast/fluttertoast.dart 53:33               Fluttertoast.showToast
I/flutter ( 3068): package:example/ui/login_page.dart 198:18                  _LoginPageState.showAccountNameEmpty
I/flutter ( 3068): package:example/presenter/login_presenter.dart 19:12       LoginPresenter.login
I/flutter ( 3068): package:example/ui/login_page.dart 135:31                  _LoginPageState.buildBody.<fn>
I/flutter ( 3068): package:flutter/src/material/ink_well.dart 507:14          _InkResponseState._handleTap
I/flutter ( 3068): package:flutter/src/material/ink_well.dart 562:30          _InkResponseState.build.<fn>
I/flutter ( 3068): package:flutter/src/gestures/recognizer.dart 102:24        GestureRecognizer.invokeCallback
I/flutter ( 3068): package:flutter/src/gestures/tap.dart 242:9                TapGestureRecognizer._checkUp
I/flutter ( 3068): package:flutter/src/gestures/tap.dart 175:7                TapGestureRecognizer.handlePrimaryPointer
I/flutter ( 3068): package:flutter/src/gestures/recognizer.dart 315:9         PrimaryPointerGestureRecognizer.handleEvent
I/flutter ( 3068): package:flutter/src/gestures/pointer_router.dart 73:12     PointerRouter._dispatch
I/flutter ( 3068): package:flutter/src/gestures/pointer_router.dart 101:11    PointerRouter.route
I/flutter ( 3068): package:flutter/src/gestures/binding.dart 180:19           _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent
I/flutter ( 3068): package:flutter/src/gestures/binding.dart 158:22           _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent
I/flutter ( 3068): package:flutter/src/gestures/binding.dart 138:7            _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent
I/flutter ( 3068): package:flutter/src/gestures/binding.dart 101:7            _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue
I/flutter ( 3068): package:flutter/src/gestures/binding.dart 85:7             _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket
I/flutter ( 3068): dart:async/zone.dart 1136:13                               _rootRunUnary
I/flutter ( 3068): dart:async/zone.dart 1029:19                               _CustomZone.runUnary
I/flutter ( 3068): dart:async/zone.dart 931:7                                 _CustomZone.runUnaryGuarded
I/flutter ( 3068): dart:ui/hooks.dart 170:10                                  _invoke1
I/flutter ( 3068): dart:ui/hooks.dart 122:5                                   _dispatchPointerDataPacket

flutter_stack_trace的Simple Mode打印

I/flutter ( 3068): PlatformException(error, Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference, null)
I/flutter ( 3068): package:fluttertoast/fluttertoast.dart 53:33               Fluttertoast.showToast
I/flutter ( 3068): package:example/ui/login_page.dart 198:18                  _LoginPageState.showAccountNameEmpty
I/flutter ( 3068): package:example/presenter/login_presenter.dart 19:12       LoginPresenter.login
I/flutter ( 3068): package:example/ui/login_page.dart 135:31                  _LoginPageState.buildBody.<fn>

使用方法

import 'package:flutter_stack_trace/flutter_stack_trace.dart';

//default simple mode
void main() => FlutterChain.capture(
      () {
        runApp(MyApp());
      },
    );

//just print in debug mode
//isShowTime default true
FlutterChain.print("test",isShowTime: false);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flutter 支持通过蓝牙打印机进行打印。你可以使用插件 `flutter_bluetooth_serial` 来实现蓝牙打印功能。下面是一个简单的示例: 首先,在 `pubspec.yaml` 文件中添加如下依赖: ```yaml dependencies: flutter_bluetooth_serial: ^0.0.9 ``` 然后,在需要使用蓝牙打印功能的页面中,引入插件: ```dart import 'package:flutter_bluetooth_serial/flutter_bluetooth_serial.dart'; ``` 接下来,你需要使用 `FlutterBluetoothSerial` 类中的方法来搜索蓝牙设备并连接到你想要连接的设备。以下是一个搜索并连接到蓝牙设备的示例代码: ```dart // 搜索蓝牙设备 List<BluetoothDevice> devices = []; bool isSearching = true; FlutterBluetoothSerial.instance.startDiscovery().listen((device) { setState(() { devices.add(device); }); }); // 连接到设备 BluetoothConnection connection; Future<void> _connectToDevice(BluetoothDevice device) async { BluetoothConnection.toAddress(device.address).then((_connection) { print('已连接到设备 ${device.name}'); setState(() { connection = _connection; isSearching = false; }); }).catchError((error) { print('连接错误: $error'); }); } ``` 连接成功后,你可以使用 `BluetoothConnection` 对象中的 `output` 属性来写入数据并打印。以下是一个打印文本的示例代码: ```dart void _printText() { connection.output.add(utf8.encode('Hello Bluetooth Printer!\n')); connection.output.allSent.then((_) { print('打印完成'); }); } ``` 当然,打印不仅仅是打印文本,具体的打印格式需要根据你连接的打印机类型而定,你需要查看打印机的开发文档来了解具体的打印格式和指令。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值