我尝试使用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,
);
}
}
答案 0 :(得分:0)
“No implementation found for method...”错误通常是由于插件没有正确添加到项目中导致Flutter无法找到包中调用的方法导致的。如果使用的插件不支持目标平台,也会遇到同样的问题。但由于 barcode_scan 插件似乎同时支持 iOS 和 Android,这可能是前者造成的。
您可以尝试运行 {{1}} 来验证插件是否已添加到项目中,并使用 full restart 运行应用以确保所有添加的包都已编译。
我还注意到,在撰写本文时,barcode_scan 已停止使用。该插件可能仍能按预期工作,但不会从开发人员那里收到进一步的更新。您还可以查看 pub.dev 中可能适合您的用例的其他条码扫描器插件。