重新打开 QR Reader 时 Mobile Scanner Flutter 库出错

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

我正在开发一个 Flutter 项目,使用 mobile_scanner 库

^1.0.0
来读取二维码,第二次加载时发现错误。

我在Android模拟器中遇到过这种情况,我尝试了不同的Android版本,结果相同,你打开QR阅读器阅读一个,关闭它并尝试阅读另一个,然后阅读器只是显示黑屏。

我尝试处理

MobileScanner
和其他一些东西,但没有成功。我在他们的 Github 上发现了一些其他可能相关的问题,但在 Flutter 的 Web 和 iOs 方面。

我创建的代码只是重现了“官方文档”中的一个示例,这是一个带有移动扫描仪对象的小部件,用于读取 QR 和一个用于将读取的文本发回的回调。

class QrReadPage extends StatelessWidget {
  const QrReadPage({Key? key, required this.qrRead}) : super(key: key);
  final void Function(String) qrRead;

  @override
  Widget build(BuildContext context) {
    return MobileScanner(
        allowDuplicates: false,
        controller: MobileScannerController(),
        onDetect: (barcode, args) {
          String? code = barcode.rawValue;
          qrRead.call(code ?? 'Empty');
        });
  }
}

此小部件显示,当您按下主小部件中的按钮时,您可以在此处看到示例的完整代码。

我想知道之前是否有人必须处理这个问题,或者我只需要在他们的 Github 中创建一个问题。

android flutter qr-code
2个回答
3
投票

即使您找到了此错误的解决方案,我仍然想分享我使用此库的经验。我已经使用这个提到的库工作了几天,并且遇到了这个库的许多问题和错误。例如,GitHub 存储库示例正在访问库中未包含的文件。 例如导入'包:mobile_scanner_example/scanner_error_widget.dart';

这些示例不仅使用库,还在主存储库上使用库中完全缺失的一些文件,但这些文件是使其工作所必需的。 我还收到颤动警告,指出错误的类型被分配给变量等,特别是在barcode_scanner_controller.dart中 我注意到该库缺少文件,这就是它找不到某些函数和类的原因。我必须自己添加所有丢失的文件,这实际上是库应该做的事情,因为这就是创建库的原因。

此外,手电筒(手电筒)无法正常工作,并且我在这个库中遇到了许多其他错误。即使该库评价很高,我也会建议您和其他用户使用另一个库来扫描二维码和条形码。这个库的文档写得也很差。您可以在 GitHub 存储库和文档中看到不同的代码。从旧版本到新版本的迁移也更大。不要在这样维护不善的图书馆上浪费宝贵的时间。

使用其他库可能比这个库更方便、更容易使用。不要被 pub.dev 上对 mobile_scanner 库的好评所蒙蔽

希望能帮上一点忙


0
投票

作为解决方法,您可以尝试使用它,即。 3 个不同的控制器(如果您的用例可能的话)。

final MobileScannerController _cameraController1 = MobileScannerController();
final MobileScannerController _cameraController2 = MobileScannerController();
final MobileScannerController _cameraController3 = MobileScannerController();
© www.soinside.com 2019 - 2024. All rights reserved.