在通道抖动com.apptresoftwore.barcode_scan上找不到方法扫描的实现

时间:2019-04-19 15:41:29

标签: flutter barcode-scanner

我尝试使用Flutter在移动应用程序中创建QRCode扫描器。我在pubspec.yaml中添加了barcode_scan软件包并向相机添加了权限 但是每次显示相同错误时,都没有找到方法扫描的隐喻,我找不到解决方案。这是我的代码

import 'package:flutter/material.dart';
import 'package:barcode_scan/barcode_scan.dart';
import 'dart:async';
import 'package:flutter/services.dart';
class MyHomePage extends StatefulWidget{
@override
_MyHomePageState createState()=> new _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
String result = "Hey there !";

 Future _scanQR() async {
 try {
  String qrResult = await BarcodeScanner.scan();
  setState(() {
    result = qrResult;
   });
  } on PlatformException catch (ex) {
  if (ex.code == BarcodeScanner.CameraAccessDenied) {
    setState(() {
      result = "Camera permission was denied";
    });
  } else {
    setState(() {
      result = "Unknown Error $ex";
    });
  }
  } on FormatException {
  setState(() {
    result = "You pressed the back button before scanning anything";
  });
  } catch (ex) {
  setState(() {
    result = "Unknown Error $ex";
  });
  }
  }

  @override
  Widget build(BuildContext context) {
  return Scaffold(
   appBar: AppBar(
    title: Text("QR Scanner"),
    ),
   body: Center(
    child: Text(
      result,
      style: new TextStyle(fontSize: 30.0, fontWeight: FontWeight.bold),
    ),
    ),
    floatingActionButton: FloatingActionButton.extended(
    icon: Icon(Icons.camera_alt),
    label: Text("Scan"),
    onPressed: _scanQR,
    ),
    floatingActionButtonLocation: 
    FloatingActionButtonLocation.centerFloat,
    );
    }
    }

1 个答案:

答案 0 :(得分:0)

“No implementation found for method...”错误通常是由于插件没有正确添加到项目中导致Flutter无法找到包中调用的方法导致的。如果使用的插件不支持目标平台,也会遇到同样的问题。但由于 barcode_scan 插件似乎同时支持 iOS 和 Android,这可能是前者造成的。

您可以尝试运行 {{1}} 来验证插件是否已添加到项目中,并使用 full restart 运行应用以确保所有添加的包都已编译。

我还注意到,在撰写本文时,barcode_scan 已停止使用。该插件可能仍能按预期工作,但不会从开发人员那里收到进一步的更新。您还可以查看 pub.dev 中可能适合您的用例的其他条码扫描器插件。