Flutter Web 上的 usb_device pkg 在发布模式下尝试连接时出现错误

问题描述 投票:0回答:1

我正在使用这个 Flutter 包:usb_device 1.0.2

在调试模式下,我的 Flutter Web 应用程序成功连接到我的 USB 设备。

我的 USB 设备是 ESP32-S3。

And I am on Flutter version 3.24.4 • channel stable • https://github.com/flutter/flutter.git
(Dart 3.5.4 • DevTools 2.37.3)
I tried in Chrome, Edge and Safari Browsers.

I am able to successfully connect my USB-device
with the usbDevice.requestDevices(...) cmd inside the browser.

但是,如果我在发布模式下运行 Flutter Web 应用程序,则设备连接弹出窗口不会显示,并且会发生错误。

即如果我尝试使用以下 cmd 运行我的 Flutter Web 应用程序(即在发布模式下),则设备连接代码会崩溃:

flutter run -d chrome --release

这是我在 Flutter Web 中调用 connect 方法:

  Future<void> _connectToDevice() async {
    try {
      pairedDevice = await usbDevice
          .requestDevices([DeviceFilter(vendorId: 0x303a, productId: 0x1001)]);
    } catch (e) {
      Utils.showSnackBar(e.toString(), Colors.red);      
      setState(() => _status = 'Error: $e');
    }
  }

并显示以下错误消息:

Invalid argument: Instance of 'minified:UK'

同样,在调试模式下,相同的代码也可以工作。仅当我在发布模式下运行 Flutter Web 应用程序时(即

flutter run -d chrome --release
在该连接请求时崩溃 - 即在调用
pairedDevice = await usbDevice.requestDevices(...)

时)

如何让我的 Flutter Web 应用程序在发布模式下运行?


flutter webusb webusb-plugin
1个回答
0
投票

与此同时,我找到了解决方法:

我现在使用这个 Flutter 包,名为 web_usb

并且经过一些修改以适应我的设备(特别是关于端点寻址),我现在有了一个工作解决方案,如果在

release
模式下运行也完全可以工作:

flutter run -d chrome --release
© www.soinside.com 2019 - 2024. All rights reserved.