flutter could not find com.google.android.gms.vision.barcode when using flutter_barcode_scanner
Please make sure you have added these permissions in your app/src/main/AndroidManifest.xml
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<application ...>
...
</application>
marwa nam
Updated on January 01, 2023Comments
-
marwa nam over 1 year
I have this error when using flutter_barcode_scanner :
Local module descriptor class for com.google.android.gms.vision.barcode not found. Error loading optional module com.google.android.gms.vision.barcode: com.google.android.gms.dynamite.DynamiteModule$LoadingException: No acceptable module found. Local version is 0 and remote version is 0. Local module descriptor class for com.google.android.gms.vision.dynamite.barcode not found. D/ViewRootImpl@9677bb1BarcodeCaptureActivity: ViewPostIme pointer 0
could any one help me please!
how to reproduce : 1- I just run the example provided with package 2- select scan barcode 3- the app ask for permission -> accept giving the permission 4- the scanner keep scan and did not catch the barcode 5- the error appear in android studio in the run tab
main.dart
import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_barcode_scanner/flutter_barcode_scanner.dart'; void main() => runApp(MyApp()); class MyApp extends StatefulWidget { @override _MyAppState createState() => _MyAppState(); } class _MyAppState extends State<MyApp> { String _scanBarcode = 'Unknown'; @override void initState() { super.initState(); } Future<void> startBarcodeScanStream() async { FlutterBarcodeScanner.getBarcodeStreamReceiver( '#ff6666', 'Cancel', true, ScanMode.BARCODE)! .listen((barcode) => print(barcode)); } Future<void> scanQR() async { String barcodeScanRes; // Platform messages may fail, so we use a try/catch PlatformException. try { barcodeScanRes = await FlutterBarcodeScanner.scanBarcode( '#ff6666', 'Cancel', true, ScanMode.QR); print(barcodeScanRes); } on PlatformException { barcodeScanRes = 'Failed to get platform version.'; } // If the widget was removed from the tree while the asynchronous platform // message was in flight, we want to discard the reply rather than calling // setState to update our non-existent appearance. if (!mounted) return; setState(() { _scanBarcode = barcodeScanRes; }); } // Platform messages are asynchronous, so we initialize in an async method. Future<void> scanBarcodeNormal() async { String barcodeScanRes; // Platform messages may fail, so we use a try/catch PlatformException. try { barcodeScanRes = await FlutterBarcodeScanner.scanBarcode( '#ff6666', 'Cancel', true, ScanMode.BARCODE); print(barcodeScanRes); } on PlatformException { barcodeScanRes = 'Failed to get platform version.'; } // If the widget was removed from the tree while the asynchronous platform // message was in flight, we want to discard the reply rather than calling // setState to update our non-existent appearance. if (!mounted) return; setState(() { _scanBarcode = barcodeScanRes; }); } @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar(title: const Text('Barcode scan')), body: Builder(builder: (BuildContext context) { return Container( alignment: Alignment.center, child: Flex( direction: Axis.vertical, mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ ElevatedButton( onPressed: () => scanBarcodeNormal(), child: Text('Start barcode scan')), ElevatedButton( onPressed: () => scanQR(), child: Text('Start QR scan')), ElevatedButton( onPressed: () => startBarcodeScanStream(), child: Text('Start barcode scan stream')), Text('Scan result : $_scanBarcode\n', style: TextStyle(fontSize: 20)) ])); }))); } }
-
Sneaky Polar Bear over 2 yearsCould you post the code (even though it is provided with the package). It will make it easier for SO users to help.
-
marwa nam over 2 yearsok , I will provide it
-