Giter Site home page Giter Site logo

rmtmckenzie / flutter_qr_mobile_vision Goto Github PK

View Code? Open in Web Editor NEW
213.0 18.0 184.0 11.53 MB

QR reader plugin using mobile vision API for Flutter.

License: MIT License

Java 46.87% Objective-C 0.05% Dart 31.74% Ruby 3.13% Swift 18.21%
flutter qr plugin

flutter_qr_mobile_vision's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flutter_qr_mobile_vision's Issues

Minimum SDK preventing Gradle build

Hello, just installed this package but I cannot run it due to the error detailed below....

I have tried adding this to the androidmanifest.xml which does not help

<uses-sdk android:minSdkVersion="21"/>

Hope you can help :)

Launching lib\main.dart on ONEPLUS A3003 in debug mode...
C:{pathToApp}/app\android\app\src\main\AndroidManifest.xml:12:5-14:62 Error:
uses-sdk:minSdkVersion 16 cannot be smaller than version 17 declared in library [:qr_mobile_vision] C:{pathToApp}\app\build\qr_mobile_vision\intermediates\manifests\full\debug\AndroidManifest.xml as the library might be using APIs not available in 16
Suggestion: use a compatible library with a minSdk of at most 16,
or increase this project's minSdk version to at least 17,
or use tools:overrideLibrary="com.github.rmtmckenzie.qrmobilevision" to force usage (may lead to runtime failures)
FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:processDebugManifest'.

Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 17 declared in library [:qr_mobile_vision] C:{pathToApp}\app\build\qr_mobile_vision\intermediates\manifests\full\debug\AndroidManifest.xml as the library might be using APIs not available in 16
Suggestion: use a compatible library with a minSdk of at most 16,
or increase this project's minSdk version to at least 17,
or use tools:overrideLibrary="com.github.rmtmckenzie.qrmobilevision" to force usage (may lead to runtime failures)

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
  • Get more help at https://help.gradle.org
    BUILD FAILED in 3s
    Gradle build failed: 1

black screen on oppo find 7a

E/CameraDevice-0-LE(21927): Surface with size (w=800, h=600) and format 0x23 is not valid, size not in valid set: [1440x1080, 1280x960, 1280x720, 864x480, 800x480, 720x480, 640x480, 576x432, 480x320, 384x288, 352x288, 320x240, 240x160, 176x144]
W/CameraDevice-JV-0(21927): Stream configuration failed
E/CameraCaptureSession(21927): Session 0: Failed to create capture session; configuration failed
I/System.out(21927): ### Configuration Fail ###

OutOfMemoryException on Oneplus 6

When running (even example) app on Oneplus 6 android 9 (OxygenOS 9.0.2) and starting the camera (doesn't have to be reading codes) it begins to lag a lot and eventually just kills the app.

flutter doctor:

[✓] Flutter (Channel beta, v0.10.2, on Linux, locale en_US.UTF-8)
[✓] Android toolchain - develop for Android devices (Android SDK 28.0.3)
[!] Android Studio (not installed)
[✓] Connected device (2 available)

! Doctor found issues in 1 category.

Log:

...
W/System.err( 6495): java.lang.OutOfMemoryError: Failed to allocate a 5308432
byte allocation with 1275040 free bytes and 1245KB until OOM, max allowed
footprint 268435456, growth limit 268435456
W/System.err( 6495): 	at
com.github.rmtmckenzie.qrmobilevision.QrDetector2$QrImage.<init>(QrDetector2.jav
a:64)
W/System.err( 6495): 	at
com.github.rmtmckenzie.qrmobilevision.QrCameraC2$2.onImageAvailable(QrCameraC2.j
ava:186)
W/System.err( 6495): 	at
android.media.ImageReader$ListenerHandler.handleMessage(ImageReader.java:800)
W/System.err( 6495): 	at android.os.Handler.dispatchMessage(Handler.java:106)
W/System.err( 6495): 	at android.os.Looper.loop(Looper.java:193)
W/System.err( 6495): 	at
android.app.ActivityThread.main(ActivityThread.java:6863)
W/System.err( 6495): 	at java.lang.reflect.Method.invoke(Native Method)
W/System.err( 6495): 	at
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537
)
W/System.err( 6495): 	at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
I/levisionexampl( 6495): Waiting for a blocking GC Alloc
I/levisionexampl( 6495): Clamp target GC heap from 268MB to 256MB
I/levisionexampl( 6495): Alloc concurrent copying GC freed 185(47KB) AllocSpace
objects, 1(10MB) LOS objects, 4% free, 244MB/256MB, paused 107us total 21.757ms
I/levisionexampl( 6495): Starting a blocking GC Alloc
I/levisionexampl( 6495): Waiting for a blocking GC Alloc
I/levisionexampl( 6495): Clamp target GC heap from 268MB to 256MB
I/levisionexampl( 6495): Alloc concurrent copying GC freed 3(63KB) AllocSpace
objects, 0(0B) LOS objects, 4% free, 244MB/256MB, paused 76us total 18.436ms
I/levisionexampl( 6495): Forcing collection of SoftReferences for 20MB
allocation
I/levisionexampl( 6495): WaitForGcToComplete blocked Alloc on HeapTrim for
37.066ms
I/levisionexampl( 6495): Starting a blocking GC Alloc
I/chatty  ( 6495): uid=10119(com.github.rmtmckenzie.qrmobilevisionexample)
identical 1 line
I/levisionexampl( 6495): Starting a blocking GC Alloc
I/levisionexampl( 6495): Waiting for a blocking GC Alloc
I/levisionexampl( 6495): Clamp target GC heap from 278MB to 256MB
I/levisionexampl( 6495): Alloc concurrent copying GC freed 33(47KB) AllocSpace
objects, 0(0B) LOS objects, 0% free, 254MB/256MB, paused 70us total 7.746ms
I/levisionexampl( 6495): Starting a blocking GC Alloc
I/levisionexampl( 6495): Waiting for a blocking GC Alloc
I/levisionexampl( 6495): Clamp target GC heap from 278MB to 256MB
I/levisionexampl( 6495): Alloc concurrent copying GC freed 4(88B) AllocSpace
objects, 0(0B) LOS objects, 0% free, 254MB/256MB, paused 164us total 7.194ms
I/levisionexampl( 6495): Forcing collection of SoftReferences for 5MB allocation
I/levisionexampl( 6495): Starting a blocking GC Alloc
I/levisionexampl( 6495): Waiting for a blocking GC Alloc
I/levisionexampl( 6495): Clamp target GC heap from 278MB to 256MB
I/levisionexampl( 6495): Alloc concurrent copying GC freed 27(32KB) AllocSpace
objects, 0(0B) LOS objects, 0% free, 254MB/256MB, paused 39us total 8.651ms
W/levisionexampl( 6495): Throwing OutOfMemoryError "Failed to allocate a 5308427
byte allocation with 1290488 free bytes and 1260KB until OOM, max allowed
footprint 268435456, growth limit 268435456"
I/levisionexampl( 6495): WaitForGcToComplete blocked Alloc on HeapTrim for
23.964ms
I/levisionexampl( 6495): Starting a blocking GC Alloc
I/levisionexampl( 6495): Waiting for a blocking GC Alloc
I/levisionexampl( 6495): Clamp target GC heap from 278MB to 256MB
I/levisionexampl( 6495): Alloc concurrent copying GC freed 28(47KB) AllocSpace
objects, 0(0B) LOS objects, 0% free, 254MB/256MB, paused 40us total 9.289ms
W/levisionexampl( 6495): Throwing OutOfMemoryError "Failed to allocate a
21233680 byte allocation with 1273736 free bytes and 1243KB until OOM, max
allowed footprint 268435456, growth limit 268435456"
I/levisionexampl( 6495): WaitForGcToComplete blocked Alloc on HeapTrim for
9.974ms
I/levisionexampl( 6495): Starting a blocking GC Alloc
E/AndroidRuntime( 6495): FATAL EXCEPTION: AsyncTask #1
E/AndroidRuntime( 6495): Process: com.github.rmtmckenzie.qrmobilevisionexample,
PID: 6495
E/AndroidRuntime( 6495): java.lang.RuntimeException: An error occurred while
executing doInBackground()
E/AndroidRuntime( 6495): 	at android.os.AsyncTask$3.done(AsyncTask.java:354)
E/AndroidRuntime( 6495): 	at
java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
E/AndroidRuntime( 6495): 	at
java.util.concurrent.FutureTask.setException(FutureTask.java:252)
E/AndroidRuntime( 6495): 	at
java.util.concurrent.FutureTask.run(FutureTask.java:271)
E/AndroidRuntime( 6495): 	at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/AndroidRuntime( 6495): 	at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/AndroidRuntime( 6495): 	at java.lang.Thread.run(Thread.java:764)
E/AndroidRuntime( 6495): Caused by: java.lang.OutOfMemoryError: Failed to
allocate a 21233680 byte allocation with 1273736 free bytes and 1243KB until
OOM, max allowed footprint 268435456, growth limit 268435456
E/AndroidRuntime( 6495): 	at
com.github.rmtmckenzie.qrmobilevision.QrDetector2$QrImage.toNv21(QrDetector2.jav
a:87)
E/AndroidRuntime( 6495): 	at
com.github.rmtmckenzie.qrmobilevision.QrDetector2$QrImage.access$100(QrDetector2
.java:40)
E/AndroidRuntime( 6495): 	at
com.github.rmtmckenzie.qrmobilevision.QrDetector2$QrTask.doInBackground(QrDetect
or2.java:135)
E/AndroidRuntime( 6495): 	at
com.github.rmtmckenzie.qrmobilevision.QrDetector2$QrTask.doInBackground(QrDetect
or2.java:114)
E/AndroidRuntime( 6495): 	at android.os.AsyncTask$2.call(AsyncTask.java:333)
E/AndroidRuntime( 6495): 	at
java.util.concurrent.FutureTask.run(FutureTask.java:266)
E/AndroidRuntime( 6495): 	... 3 more
I/levisionexampl( 6495): Starting a blocking GC Alloc
W/OPDiagnose( 6495): getService:OPDiagnoseService NULL
I/levisionexampl( 6495): Clamp target GC heap from 278MB to 256MB
I/levisionexampl( 6495): Alloc concurrent copying GC freed 11(46KB) AllocSpace
objects, 0(0B) LOS objects, 0% free, 254MB/256MB, paused 406us total 9.427ms
I/levisionexampl( 6495): Starting a blocking GC Alloc
I/levisionexampl( 6495): Clamp target GC heap from 278MB to 256MB
I/levisionexampl( 6495): Alloc concurrent copying GC freed 333(115KB) AllocSpace
objects, 0(0B) LOS objects, 0% free, 254MB/256MB, paused 37us total 6.910ms
I/levisionexampl( 6495): Forcing collection of SoftReferences for 5MB allocation
I/levisionexampl( 6495): Starting a blocking GC Alloc
D/OSTracker( 6495): OS Event: crash
I/levisionexampl( 6495): Clamp target GC heap from 278MB to 256MB
I/levisionexampl( 6495): Alloc concurrent copying GC freed 117(46KB) AllocSpace
objects, 0(0B) LOS objects, 0% free, 254MB/256MB, paused 82us total 8.570ms
W/levisionexampl( 6495): Throwing OutOfMemoryError "Failed to allocate a 5308432
byte allocation with 1190640 free bytes and 1162KB until OOM, max allowed
footprint 268435456, growth limit 268435456"
W/System.err( 6495): java.lang.OutOfMemoryError: Failed to allocate a 5308432
byte allocation with 1190640 free bytes and 1162KB until OOM, max allowed
footprint 268435456, growth limit 268435456
W/System.err( 6495): 	at
com.github.rmtmckenzie.qrmobilevision.QrDetector2$QrImage.<init>(QrDetector2.jav
a:64)
W/System.err( 6495): 	at
com.github.rmtmckenzie.qrmobilevision.QrCameraC2$2.onImageAvailable(QrCameraC2.j
ava:186)
W/System.err( 6495): 	at
android.media.ImageReader$ListenerHandler.handleMessage(ImageReader.java:800)
W/System.err( 6495): 	at android.os.Handler.dispatchMessage(Handler.java:106)
W/System.err( 6495): 	at android.os.Looper.loop(Looper.java:193)
W/System.err( 6495): 	at
android.app.ActivityThread.main(ActivityThread.java:6863)
W/System.err( 6495): 	at java.lang.reflect.Method.invoke(Native Method)
W/System.err( 6495): 	at
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537
)
W/System.err( 6495): 	at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
I/levisionexampl( 6495): Starting a blocking GC Alloc
I/levisionexampl( 6495): Starting a blocking GC Alloc
I/levisionexampl( 6495): Clamp target GC heap from 268MB to 256MB
I/levisionexampl( 6495): Alloc concurrent copying GC freed 419(106KB) AllocSpace
objects, 1(10MB) LOS objects, 4% free, 244MB/256MB, paused 41us total 6.733ms
I/levisionexampl( 6495): Starting a blocking GC Alloc
I/levisionexampl( 6495): Starting a blocking GC Alloc
I/levisionexampl( 6495): Clamp target GC heap from 278MB to 256MB
I/levisionexampl( 6495): Alloc concurrent copying GC freed 9(31KB) AllocSpace
objects, 0(0B) LOS objects, 0% free, 254MB/256MB, paused 40us total 6.973ms
I/levisionexampl( 6495): Starting a blocking GC Alloc
I/levisionexampl( 6495): Clamp target GC heap from 278MB to 256MB
I/levisionexampl( 6495): Alloc concurrent copying GC freed 19(608B) AllocSpace
objects, 0(0B) LOS objects, 0% free, 254MB/256MB, paused 38us total 6.628ms
I/levisionexampl( 6495): Forcing collection of SoftReferences for 5MB allocation
I/levisionexampl( 6495): Starting a blocking GC Alloc
I/Process ( 6495): Sending signal. PID: 6495 SIG: 9

Auto focus not working Samsung SM-G900F

Android 7.1.2.
Other app manage to auto focus and detect barcode when with this module image stay blurry.
Nothing on logs except:

07-23 14:18:00.354 13857-13869/com.kiwi.merchant.kiwimobile E/BufferQueueProducer: [SurfaceTexture-1-13857-3] cancelBuffer: BufferQueue has been abandoned
07-23 14:18:02.186 13857-13870/com.kiwi.merchant.kiwimobile E/BufferQueueProducer: [SurfaceTexture-1-13857-5] dequeueBuffer: attempting to exceed the max dequeued buffer count (9)
07-23 14:18:03.396 13857-13869/com.kiwi.merchant.kiwimobile E/BufferQueueProducer: [SurfaceTexture-1-13857-5] cancelBuffer: BufferQueue has been abandoned
07-23 14:18:03.397 13857-13870/com.kiwi.merchant.kiwimobile E/BufferQueueProducer: [SurfaceTexture-1-13857-5] cancelBuffer: BufferQueue has been abandoned
07-23 14:18:03.398 13857-14153/com.kiwi.merchant.kiwimobile E/BufferQueueProducer: [SurfaceTexture-1-13857-5] cancelBuffer: BufferQueue has been abandoned
07-23 14:18:03.398 13857-13869/com.kiwi.merchant.kiwimobile E/BufferQueueProducer: [SurfaceTexture-1-13857-5] cancelBuffer: BufferQueue has been abandoned
07-23 14:18:03.399 13857-13870/com.kiwi.merchant.kiwimobile E/BufferQueueProducer: [SurfaceTexture-1-13857-5] cancelBuffer: BufferQueue has been abandoned
07-23 14:18:03.400 13857-14153/com.kiwi.merchant.kiwimobile E/BufferQueueProducer: [SurfaceTexture-1-13857-5] cancelBuffer: BufferQueue has been abandoned
07-23 14:18:03.401 13857-13869/com.kiwi.merchant.kiwimobile E/BufferQueueProducer: [SurfaceTexture-1-13857-5] cancelBuffer: BufferQueue has been abandoned

How can I stop the camera?

Thanks for the useful widget.
Would you tell me how can I stop the camera?
I try to change other widgets, then throw the exception.

I/flutter (18772): Another exception was thrown: 'package:flutter/src/widgets/framework.dart': Failed assertion: line 3436 pos 12: '_debugLifecycleState != _ElementLifecycle.defunct': is not true.

Is there any stop method or something like that?

Create an example scanner overlay

Would be nice to have a default scanner skin overlay and a parameter to override it put everything we want on top of the camera preview

QR Camera crashes on XiaoMi Note 1. SDK Version: 4.4.4 API level of 19

This is where I place my QrCamera, I've stated the box size. I've tested on another phone which has higher API level, it works.

Center _qrReader = new Center(
child: new SizedBox(
child: new QrCamera(
onError: (context, error) => Text(
error.toString(),
style: TextStyle(color: Colors.red),
),
qrCodeCallback: (code) {
setState(() {
qr = code;
///if qr code matched, go to member pay
});
},
child: new Center(
child: Stack(
children: [
SizedBox(
height: 250.0,
width: 250.0,
child: Container(
decoration: BoxDecoration(
border: Border.all(
color: const Color(0xFFF36F27), width: 2.0)),
),
),
],
),
),
),
),
);

lint errors

Run ./gradlew lint and got following errors:

> Task :qr_mobile_vision:lint FAILED
Ran lint on variant profile: 6 issues found
Ran lint on variant debug: 6 issues found
Ran lint on variant release: 6 issues found
Wrote HTML report to build/qr_mobile_vision/reports/lint-results.html
Wrote XML report to build/qr_mobile_vision/reports/lint-results.xml
272 actionable tasks: 22 executed, 250 up-to-date

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':qr_mobile_vision:lint'.
> Lint found errors in the project; aborting build.
  
  Fix the issues identified by lint, or add the following to your build script to proceed with errors:
  ...
  android {
      lintOptions {
          abortOnError false
      }
  }
  ...
  
  Errors found:
  
  qr_mobile_vision-0.0.7/android/src/main/java/com/github/rmtmckenzie/qrmobilevision/SplitBarcodeDetector.java:50: Error: Call requires API level 17 (current min is 16): android.renderscript.ScriptIntrinsicYuvToRGB#create [NewApi]
          yuvToRgbIntrinsic = ScriptIntrinsicYuvToRGB.create(rs, Element.U8_4(rs));
                                                      ~~~~~~
  qr_mobile_vision-0.0.7/android/src/main/java/com/github/rmtmckenzie/qrmobilevision/SplitBarcodeDetector.java:77: Error: Call requires API level 17 (current min is 16): android.renderscript.ScriptIntrinsicYuvToRGB#setInput [NewApi]
              yuvToRgbIntrinsic.setInput(aIn);
                                ~~~~~~~~
  qr_mobile_vision-0.0.7/android/src/main/java/com/github/rmtmckenzie/qrmobilevision/SplitBarcodeDetector.java:81: Error: Call requires API level 17 (current min is 16): android.renderscript.ScriptIntrinsicYuvToRGB#forEach [NewApi]
              yuvToRgbIntrinsic.forEach(aOut);
                                ~~~~~~~
  

flutter: flutter_qr_mobile_vission not working scanning any type of barcode

I tried to run and test the plugin project on Samsung Note 2 and app open the camera without any issues howvever, it is not able to read to any barcode.

flutter doctor:
C:\Users\Javed\myapp>flutter doctor -v
[√] Flutter (Channel master, v0.11.7-pre.34, on Microsoft Windows [Version 10.0.17134.345], locale en-US)
• Flutter version 0.11.7-pre.34 at C:\flutter
• Framework revision 988bfc166d (25 hours ago), 2018-11-15 18:07:17 -0800
• Engine revision 699f328df5
• Dart version 2.1.0 (build 2.1.0-dev.9.4 f9ebf21297)

[√] Android toolchain - develop for Android devices (Android SDK 28.0.3)
• Android SDK at C:\Users\Javed\AppData\Local\Android
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 28.0.3
• ANDROID_HOME = C:\Users\Javed\AppData\Local\Android
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)
• All Android licenses accepted.

[√] Android Studio (version 3.1)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin version 28.0.1
• Dart plugin version 173.4700
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)

[√] VS Code (version 1.28.1)
• VS Code at C:\Users\Javed\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 2.19.0

[√] Connected device (1 available)
• GT N7100 • 4df74fc8537b2129 • android-arm • Android 4.4.2 (API 19)

• No issues found!

How am i using it:

import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:qr_mobile_vision/qr_camera.dart';

class FragmentSpecials extends StatefulWidget {
@OverRide
_MyHomePageState createState() => new _MyHomePageState();
}

class _MyHomePageState extends State {
String qr;
bool camState = false;

@OverRide
initState() {
debugPaintSizeEnabled = false;
super.initState();
}

@OverRide
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text('Plugin example app'),
),
body: new Center(
child: new Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
new Expanded(
child: camState
? new Center(
child: new SizedBox(
width: 300.0,
height: 600.0,
child: new QrCamera(
onError: (context, error) => Text(
error.toString(),
style: TextStyle(color: Colors.red),
),
qrCodeCallback: (code) {
setState(() {
qr = code;
});
},
child: new Container(
decoration: new BoxDecoration(
color: Colors.transparent,
border: Border.all(color: Colors.orange, width: 10.0, style: BorderStyle.solid),
),
),
),
),
)
: new Center(child: new Text("Camera inactive"))),
new Text("QRCODE: $qr"),
],
),
),
floatingActionButton: new FloatingActionButton(
child: new Text(
"press me",
textAlign: TextAlign.center,
),
onPressed: () {
setState(() {
camState = !camState;
});
}),
);
}
}


name: myapp
description: A new Flutter project.

version: 1.0.0+1

environment:
sdk: ">=2.0.0-dev.68.0 <3.0.0"

dependencies:
flutter:
sdk: flutter
carousel_pro: ^0.0.13

cupertino_icons: ^0.1.2
shared_preferences: "0.4.2"
audioplayers: ^0.7.8
qr_mobile_vision: ^0.1.0

dev_dependencies:
flutter_test:
sdk: flutter

flutter:
uses-material-design: true
assets:
- images/
- assets/sound_alarm.mp3
- assets/light.mp3
- assets/open-ended.mp3

fonts:
- family: SmartApp
fonts:
- asset: fonts/SmartApp.ttf
- family: walkway
fonts:
- asset: fonts/brandon-light.otf
- asset: fonts/brandon-bold.otf
weight: 700


log is here:

I/cgr.qrmv.QrReader( 7816): Using old camera API.
I/cgr.qrmv.QrDetector( 7816): Making detector for formats: 0
W/DynamiteModule( 7816): Local module descriptor class for com.google.android.gms.vision.dynamite.barcode not found.
I/DynamiteModule( 7816): Considering local module com.google.android.gms.vision.dynamite.barcode:0 and remote module com.google.android.gms.vision.dynamite.barcode:0
D/BarcodeNativeHandle( 7816): Cannot load feature, fall back to load whole module.
W/DynamiteModule( 7816): Local module descriptor class for com.google.android.gms.vision.dynamite not found.
I/DynamiteModule( 7816): Considering local module com.google.android.gms.vision.dynamite:0 and remote module com.google.android.gms.vision.dynamite:1800
I/DynamiteModule( 7816): Selected remote version of com.google.android.gms.vision.dynamite, version >= 1800
I/Vision ( 7816): Loading library libbarhopper.so
I/Vision ( 7816): libbarhopper.so library load status: true
I/cgr.qrmv.QrCameraC1( 7816): Initializing with autofocus on.
D/dalvikvm( 7816): GC_FOR_ALLOC freed 680K, 32% free 9259K/13548K, paused 36ms, total 36ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.369MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed <1K, 25% free 10271K/13548K, paused 27ms, total 27ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1016K, 32% free 9255K/13548K, paused 18ms, total 18ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 21ms, total 21ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 16ms, total 17ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 22ms, total 22ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 23ms, total 25ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 23ms, total 23ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 18ms, total 19ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 18ms, total 18ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 19ms, total 19ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 23ms, total 23ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 28ms, total 28ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 25ms, total 25ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 18ms, total 18ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 16ms, total 16ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 16ms, total 16ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 24ms, total 24ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 27ms, total 28ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 28ms, total 28ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 15ms, total 15ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 22ms, total 22ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 19ms, total 20ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 29ms, total 29ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 28ms, total 28ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 29ms, total 29ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 33ms, total 33ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed <1K, 25% free 10268K/13548K, paused 18ms, total 18ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 18ms, total 18ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 24ms, total 24ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 32ms, total 32ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed <1K, 25% free 10268K/13548K, paused 24ms, total 24ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 16ms, total 16ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 18ms, total 18ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 14ms, total 14ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 25ms, total 25ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 32ms, total 32ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 25ms, total 25ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 17ms, total 17ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 20ms, total 20ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 28ms, total 29ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 35ms, total 35ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 31ms, total 31ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 37ms, total 37ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 33ms, total 33ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 22ms, total 22ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 16ms, total 16ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed <1K, 25% free 10268K/13548K, paused 20ms, total 20ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 16ms, total 17ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 22ms, total 22ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 26ms, total 27ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 24ms, total 24ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 15ms, total 16ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 18ms, total 18ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 18ms, total 19ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 25ms, total 25ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 23ms, total 25ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 26ms, total 26ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 25ms, total 25ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 19ms, total 19ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1012K, 32% free 9255K/13548K, paused 24ms, total 24ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed 0K, 25% free 10268K/13548K, paused 20ms, total 20ms
D/dalvikvm( 7816): GC_FOR_ALLOC freed 1013K, 32% free 9255K/13548K, paused 22ms, total 22ms
I/dalvikvm-heap( 7816): Grow heap (frag case) to 11.365MB for 1036816-byte allocation
D/dalvikvm( 7816): GC_FOR_ALLOC freed <1K, 25% free 10268K/13548K, paused 32ms, total 32ms

Can you please support Barcode?

I checked out the package and tried it on some qrcodes, and it works great! Thank you so much :)
I tried it on barcodes and nothing showed up... Could this also be made to support barcodes?

iOS 9

Hello,

My application work really well under iOS 11 but I have some issue under iOS 9 (9.3.5 last version for iPod gen 5)

This is the error message I get:

flutter: ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
flutter: The following assertion was thrown building FutureBuilder<PreviewDetails>(dirty, state:
flutter: _FutureBuilderState<PreviewDetails>#6fc05):
flutter: 'package:qr_mobile_vision/qr_camera.dart': Failed assertion: line 115 pos 16: 'previewDetails !=
flutter: null': is not true.
flutter: 
flutter: Either the assertion indicates an error in the framework itself, or we should provide substantially
flutter: more information in this error message to help you determine and fix the underlying cause.
flutter: In either case, please report this assertion by filing a bug on GitHub:
flutter:   https://github.com/flutter/flutter/issues/new
flutter: 
flutter: When the exception was thrown, this was the stack:
flutter: #2      new Preview (package:qr_mobile_vision/qr_camera.dart)
flutter: #3      QrCameraState.build.<anonymous closure>.<anonymous closure> (package:qr_mobile_vision/qr_camera.dart:74:32)
flutter: #4      _FutureBuilderState.build (package:flutter/src/widgets/async.dart)
flutter: #5      StatefulElement.build (package:flutter/src/widgets/framework.dart:3730:27)
flutter: #6      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3642:15)
flutter: #7      Element.rebuild (package:flutter/src/widgets/framework.dart:3495:5)
flutter: #8      BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2242:33)
flutter: #9      _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:626:20)
flutter: #10     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:208:5)
flutter: #11     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:990:15)
flutter: #12     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:930:9)
flutter: #13     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:842:5)
flutter: #14     _invoke (dart:ui/hooks.dart:120:13)
flutter: #15     _drawFrame (dart:ui/hooks.dart:109:3)
flutter: (elided 2 frames from class _AssertionError)

FIDO2

i have a FIDO2 hardware device that i want to use with this lib.

Does it support FIDO2 yet ?

I can help

Cant add element to list in qrcodecallback

Inside the qrcodecallback I try to add new elements to list and then start a new widget by giving this list as parameter. What happens is that as the new widget starts the list looks empty when it is not in debug mode. Everything works fine in debug mode and I can't understand why. Here is my code:
qrCodeCallback: (code) {
setState(() {
qr = code;
qrCameraKey.currentState.stop();
storeMenu(qr);
returnToMenu();
});
}

And the storeMenu(qr):

storeMenu(String qr){
int i = int.parse(qr.substring(0, qr.indexOf("/")));
menu.clear();
final FirebaseDatabase database = FirebaseDatabase(app: Home.APP);
var _itemsRef = database.reference().child("items").orderByChild(
"companyId").equalTo(i);
_itemsRef.once().then((DataSnapshot snapshot) {
Map values = snapshot
.value; //snapshot.value.map((i)=> new Food.fromSnapshot(i));
values.forEach((k, v) {
//Map element=values["food"+(i+1).toString()];
var element = v;
int id = element["id"];
String name = element["name"];
double price = double.parse(element["price"].toString());
Food food = new Food(id: id,
image: "assets/images/menu1.png",
name: name,
price: price,
quantity: 0);
menu.add(food);
});
});
}

Add AndroidX Support

Please, change android.support libraries to its analogs from androidx library:
For build project with this depency i changed:
In QrCameraC2.java
android.support.annotation.NonNull -> androidx.annotation.NonNull
in QrMobileVisionPlugin.java
android.support.v4.app.ActivityCompat -> androidx.core.app.ActivityCompat
After that project build correct

Turn flashlight on and off

Since the flashlight can't be manipulated by any other plugin while the camera view is open (because using the camera overrides & blocks any other control of the flash) it would be good to be able to turn it on with this plugin while the camera is active.

Crash 0.0.5 on Android first permission result or permission denied

The plugin (so as the all app) is crashing the first time when we accept the permission or when we refuse the permission:

I/System.out( 6468): REQUESTING PERMISSIONS
I/flutter ( 6468): [INFO] LoggingMiddleware: {Action: CashRegisterModeChangedAction  = CashRegisterMode.scan, State: cart=amount=0.0, items=[], cash_register=amount=, quantity=1, product=null, amountLabel=$0.00, mode=CashRegisterMode.scan, merchantState=MerchantState{merchant: Instance of 'Merchant'}, ts: 2018-07-20 08:37:47.241297}
D/EGL_emulation( 6468): eglMakeCurrent: 0xea0e0be0: ver 3 0 (tinfo 0xe8611e40)
I/System.out( 6468): onRequestPermissionsResult
I/System.out( 6468): CAMERA_PERMISSIONS_REQUEST
I/System.out( 6468): Granted
I/System.out( 6468): PERMISSIONS WERE GRANTED
I/CameraManagerGlobal( 6468): Connecting to camera service
W/c.g.r.QrMobVisPlugin( 6468): Starting QR Mobile Vision failed
W/c.g.r.QrMobVisPlugin( 6468): java.lang.NullPointerException: Attempt to read from field 'com.github.rmtmckenzie.qrmobilevision.QRReader com.github.rmtmckenzie.qrmobilevision.QrMobileVisionPlugin$ReadingInstance.reader' on a null object reference
W/c.g.r.QrMobVisPlugin( 6468): 	at com.github.rmtmckenzie.qrmobilevision.QrMobileVisionPlugin.started(QrMobileVisionPlugin.java:134)
W/c.g.r.QrMobVisPlugin( 6468): 	at com.github.rmtmckenzie.qrmobilevision.QRReader.continueStarting(QRReader.java:102)
W/c.g.r.QrMobVisPlugin( 6468): 	at com.github.rmtmckenzie.qrmobilevision.QRReader.access$000(QRReader.java:14)
W/c.g.r.QrMobVisPlugin( 6468): 	at com.github.rmtmckenzie.qrmobilevision.QRReader$1.permissionsGranted(QRReader.java:70)
W/c.g.r.QrMobVisPlugin( 6468): 	at com.github.rmtmckenzie.qrmobilevision.PermissionsActivity.onRequestPermissionsResult(PermissionsActivity.java:56)
W/c.g.r.QrMobVisPlugin( 6468): 	at android.app.Activity.dispatchRequestPermissionsResult(Activity.java:7608)
W/c.g.r.QrMobVisPlugin( 6468): 	at android.app.Activity.dispatchActivityResult(Activity.java:7458)
W/c.g.r.QrMobVisPlugin( 6468): 	at android.app.ActivityThread.deliverResults(ActivityThread.java:4353)
W/c.g.r.QrMobVisPlugin( 6468): 	at android.app.ActivityThread.handleSendResult(ActivityThread.java:4402)
W/c.g.r.QrMobVisPlugin( 6468): 	at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49)
W/c.g.r.QrMobVisPlugin( 6468): 	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
W/c.g.r.QrMobVisPlugin( 6468): 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
W/c.g.r.QrMobVisPlugin( 6468): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
W/c.g.r.QrMobVisPlugin( 6468): 	at android.os.Handler.dispatchMessage(Handler.java:106)
W/c.g.r.QrMobVisPlugin( 6468): 	at android.os.Looper.loop(Looper.java:193)
W/c.g.r.QrMobVisPlugin( 6468): 	at android.app.ActivityThread.main(ActivityThread.java:6669)
W/c.g.r.QrMobVisPlugin( 6468): 	at java.lang.reflect.Method.invoke(Native Method)
W/c.g.r.QrMobVisPlugin( 6468): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
W/c.g.r.QrMobVisPlugin( 6468): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
D/AndroidRuntime( 6468): Shutting down VM
E/AndroidRuntime( 6468): FATAL EXCEPTION: main
E/AndroidRuntime( 6468): Process: com.kiwi.merchant.kiwimobile, PID: 6468
E/AndroidRuntime( 6468): java.lang.RuntimeException: Failure delivering result ResultInfo{who=@android:requestPermissions:, request=123, result=-1, data=Intent { act=android.content.pm.action.REQUEST_PERMISSIONS (has extras) }} to activity {com.kiwi.merchant.kiwimobile/com.github.rmtmckenzie.qrmobilevision.PermissionsActivity}: java.lang.NullPointerException: Attempt to read from field 'io.flutter.plugin.common.MethodChannel$Result com.github.rmtmckenzie.qrmobilevision.QrMobileVisionPlugin$ReadingInstance.startResult' on a null object reference
E/AndroidRuntime( 6468): 	at android.app.ActivityThread.deliverResults(ActivityThread.java:4360)
E/AndroidRuntime( 6468): 	at android.app.ActivityThread.handleSendResult(ActivityThread.java:4402)
E/AndroidRuntime( 6468): 	at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49)
E/AndroidRuntime( 6468): 	at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
E/AndroidRuntime( 6468): 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
E/AndroidRuntime( 6468): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
E/AndroidRuntime( 6468): 	at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime( 6468): 	at android.os.Looper.loop(Looper.java:193)
E/AndroidRuntime( 6468): 	at android.app.ActivityThread.main(ActivityThread.java:6669)
E/AndroidRuntime( 6468): 	at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime( 6468): 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
E/AndroidRuntime( 6468): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
E/AndroidRuntime( 6468): Caused by: java.lang.NullPointerException: Attempt to read from field 'io.flutter.plugin.common.MethodChannel$Result com.github.rmtmckenzie.qrmobilevision.QrMobileVisionPlugin$ReadingInstance.startResult' on a null object reference
E/AndroidRuntime( 6468): 	at com.github.rmtmckenzie.qrmobilevision.QrMobileVisionPlugin.startingFailed(QrMobileVisionPlugin.java:154)
E/AndroidRuntime( 6468): 	at com.github.rmtmckenzie.qrmobilevision.QRReader.continueStarting(QRReader.java:104)
E/AndroidRuntime( 6468): 	at com.github.rmtmckenzie.qrmobilevision.QRReader.access$000(QRReader.java:14)
E/AndroidRuntime( 6468): 	at com.github.rmtmckenzie.qrmobilevision.QRReader$1.permissionsGranted(QRReader.java:70)
E/AndroidRuntime( 6468): 	at com.github.rmtmckenzie.qrmobilevision.PermissionsActivity.onRequestPermissionsResult(PermissionsActivity.java:56)
E/AndroidRuntime( 6468): 	at android.app.Activity.dispatchRequestPermissionsResult(Activity.java:7608)
E/AndroidRuntime( 6468): 	at android.app.Activity.dispatchActivityResult(Activity.java:7458)
E/AndroidRuntime( 6468): 	at android.app.ActivityThread.deliverResults(ActivityThread.java:4353)
E/AndroidRuntime( 6468): 	... 11 more
I/Process ( 6468): Sending signal. PID: 6468 SIG: 9

Tested on Android emulator API 28

Delay between barcode scans & Camera frame rate while scanning

Thanks for create this useful package 👍
I have 2 problem and have no idea how to handle them :

  1. QrCamera's callback called too many times immediately after scanned barcode. I want to add a specific delay after each callback and QrCamera can't scan & callback until the end of delay.

  2. QrCamera's camera frame rate is so low and I want to change it to normal mode.

Add check for unrecognized format.

Seems to return Unknown encoding rather than an error when binary encoded data is returned i.e. out

Should add a check for this and throw an error of some sort.

ios error on Navigator pop

App crash on Navigator.pop on ios. (real device)

Steps:

  • Basic app with 2 screen.
  • first screen home
  • secondo screen Qr
  • on second screen qr is working but after navigation pop, app crash without error.

QrCamera

I installed your plugin. However, i get the message; the method QrCamera is not defined eventhough i have imported the package.
Kindly assist.

Camera has error on android but iOS is working & New example didn't gradle

Camera is working on iOS very well, but on android after camera opening, console print too much warnings and errors and didn't recognize any barcode. I searched in the internet and checked all solutions but it didn't work. Also your new update of example works on iOS but in android it has error in initializing gradle.

It's gradle errors and warnings :

Exit code 1 from: /Users/saman/Downloads/flutter_qr_mobile_vision-master/example/android/gradlew -v:
Unzipping /Users/saman/.gradle/wrapper/dists/gradle-4.10.1-all/455itskqi2qtf0v2sja68alqd/gradle-4.10.1-all.zip to /Users/saman/.gradle/wrapper/dists/gradle-4.10.1-all/455itskqi2qtf0v2sja68alqd
Exception in thread "main" java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.(ZipFile.java:219)
at java.util.zip.ZipFile.(ZipFile.java:149)
at java.util.zip.ZipFile.(ZipFile.java:163)
at org.gradle.wrapper.Install.unzip(Install.java:214)
at org.gradle.wrapper.Install.access$600(Install.java:27)
at org.gradle.wrapper.Install$1.call(Install.java:74)
at org.gradle.wrapper.Install$1.call(Install.java:48)
at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)
at org.gradle.wrapper.Install.createDist(Install.java:48)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128)
at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)

It's camera errors and warnings on android :

I/cgr.qrmv.QrReader( 9168): Using new camera API.
I/cgr.qrmv.QrDetector( 9168): Making detector2 for formats: 1775
W/DynamiteModule( 9168): Local module descriptor class for com.google.android.gms.vision.dynamite.barcode not found.
I/DynamiteModule( 9168): Considering local module com.google.android.gms.vision.dynamite.barcode:0 and remote module com.google.android.gms.vision.dynamite.barcode:0
D/BarcodeNativeHandle( 9168): Cannot load feature, fall back to load whole module.
W/DynamiteModule( 9168): Local module descriptor class for com.google.android.gms.vision.dynamite not found.
W/zygote64( 9168): Unsupported class loader
W/zygote64( 9168): Skipping duplicate class check due to unsupported classloader
I/DynamiteModule( 9168): Considering local module com.google.android.gms.vision.dynamite:0 and remote module com.google.android.gms.vision.dynamite:1800
I/DynamiteModule( 9168): Selected remote version of com.google.android.gms.vision.dynamite, version >= 1800
W/zygote64( 9168): Unsupported class loader
W/zygote64( 9168): Skipping duplicate class check due to unsupported classloader
I/Vision ( 9168): Loading library libbarhopper.so
I/zygote64( 9168): The ClassLoaderContext is a special shared library.
I/zygote64( 9168): The ClassLoaderContext is a special shared library.
I/zygote64( 9168): Do partial code cache collection, code=30KB, data=24KB
I/zygote64( 9168): After code cache collection, code=30KB, data=24KB
I/zygote64( 9168): Increasing code cache capacity to 128KB
I/Vision ( 9168): Library not found: /data/user/0/com.google.android.gms/app_vision/barcode/libs/arm64-v8a/libbarhopper.so
I/Vision ( 9168): libbarhopper.so library load status: false
I/Vision ( 9168): Request download for engine barcode
W/BarcodeNativeHandle( 9168): Native handle not yet available. Reverting to no-op handle.
I/CameraManagerGlobal( 9168): Connecting to camera service
W/ample.driverapp( 9168): type=1400 audit(0.0:3886): avc: denied { read } for name="u:object_r:camera_prop:s0" dev="tmpfs" ino=15533 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:camera_prop:s0 tclass=file permissive=0
E/libc ( 9168): Access denied finding property "persist.camera.cfa.packagelist"
I/cgr.qrmv.QrCameraC2( 9168): Setting af mode to: 4
I/zygote64( 9168): Background concurrent copying GC freed 10299(1229KB) AllocSpace objects, 2(40KB) LOS objects, 42% free, 32MB/56MB, paused 9.618ms total 87.426ms
I/zygote64( 9168): Background concurrent copying GC freed 147(136KB) AllocSpace objects, 0(0B) LOS objects, 27% free, 64MB/88MB, paused 10.597ms total 78.638ms
I/zygote64( 9168): Background concurrent copying GC freed 76(110KB) AllocSpace objects, 0(0B) LOS objects, 14% free, 143MB/167MB, paused 87us total 113.433ms
I/zygote64( 9168): Clamp target GC heap from 199MB to 192MB
I/zygote64( 9168): Background concurrent copying GC freed 230(125KB) AllocSpace objects, 0(0B) LOS objects, 8% free, 175MB/192MB, paused 9.199ms total 90.236ms
I/zygote64( 9168): Starting a blocking GC Alloc
I/zygote64( 9168): Starting a blocking GC Alloc
W/DynamiteModule( 9168): Local module descriptor class for com.google.android.gms.vision.dynamite.barcode not found.
I/zygote64( 9168): Clamp target GC heap from 215MB to 192MB
I/zygote64( 9168): Alloc concurrent copying GC freed 165(139KB) AllocSpace objects, 0(0B) LOS objects, 0% free, 191MB/192MB, paused 4.321ms total 41.392ms
I/zygote64( 9168): Starting a blocking GC Alloc
I/zygote64( 9168): Clamp target GC heap from 215MB to 192MB
I/zygote64( 9168): Alloc concurrent copying GC freed 127(34KB) AllocSpace objects, 0(0B) LOS objects, 0% free, 191MB/192MB, paused 205us total 27.966ms
I/zygote64( 9168): Forcing collection of SoftReferences for 7MB allocation
I/zygote64( 9168): Starting a blocking GC Alloc
I/DynamiteModule( 9168): Considering local module com.google.android.gms.vision.dynamite.barcode:0 and remote module com.google.android.gms.vision.dynamite.barcode:0
D/BarcodeNativeHandle( 9168): Cannot load feature, fall back to load whole module.
W/DynamiteModule( 9168): Local module descriptor class for com.google.android.gms.vision.dynamite not found.
I/zygote64( 9168): Clamp target GC heap from 215MB to 192MB
I/zygote64( 9168): Alloc concurrent copying GC freed 247(53KB) AllocSpace objects, 0(0B) LOS objects, 0% free, 191MB/192MB, paused 234us total 25.763ms
W/zygote64( 9168): Throwing OutOfMemoryError "Failed to allocate a 8294412 byte allocation with 966840 free bytes and 944KB until OOM, max allowed footprint 201326592, growth limit 201326592"
I/zygote64( 9168): Starting a blocking GC Alloc
I/zygote64( 9168): Starting a blocking GC Alloc
I/DynamiteModule( 9168): Considering local module com.google.android.gms.vision.dynamite:0 and remote module com.google.android.gms.vision.dynamite:1800
I/DynamiteModule( 9168): Selected remote version of com.google.android.gms.vision.dynamite, version >= 1800
I/zygote64( 9168): Clamp target GC heap from 215MB to 192MB
I/zygote64( 9168): Alloc concurrent copying GC freed 110(93KB) AllocSpace objects, 0(0B) LOS objects, 0% free, 191MB/192MB, paused 524us total 26.573ms
I/zygote64( 9168): Starting a blocking GC Alloc
I/zygote64( 9168): Clamp target GC heap from 215MB to 192MB
I/zygote64( 9168): Alloc concurrent copying GC freed 19(46KB) AllocSpace objects, 0(0B) LOS objects, 0% free, 191MB/192MB, paused 340us total 17.011ms
I/zygote64( 9168): Forcing collection of SoftReferences for 7MB allocation
I/zygote64( 9168): Starting a blocking GC Alloc
I/zygote64( 9168): Clamp target GC heap from 215MB to 192MB
I/zygote64( 9168): Alloc concurrent copying GC freed 73(49KB) AllocSpace objects, 0(0B) LOS objects, 0% free, 191MB/192MB, paused 442us total 16.746ms
W/zygote64( 9168): Throwing OutOfMemoryError "Failed to allocate a 8294416 byte allocation with 1012792 free bytes and 989KB until OOM, max allowed footprint 201326592, growth limit 201326592"
W/System.err( 9168): java.lang.OutOfMemoryError: Failed to allocate a 8294416 byte allocation with 1012792 free bytes and 989KB until OOM, max allowed footprint 201326592, growth limit 201326592
W/System.err( 9168): at com.github.rmtmckenzie.qrmobilevision.QrDetector2$QrImage.(QrDetector2.java:63)

...

Reading Binary Data

So I'm working on a Point of Sale app doing barcode scanning. I'm using datamatrix to store an md5 sum of an item name, and my app stores all the item names and their prices in a json file. When I scan a barcode, I'll compare the data I get out of the barcode with the md5 sum of all the item names to figure out which price+name combination is the right one. There's probably a better way to do that, but I want all the barcodes to be the same size, hence the hashing function.

The problem is reading binary data. I've got a program that will run a name through md5 and spit that out on stdout, and I'm using dmtxwrite and dmtxread to encode/decode barcodes. I can generate a barcode in this manner which I can verify is the correct data using dmtxread. Barcode:
out

The problem is reading this barcode data using this library: The library gives me a string instead of aList<int> (dart's type system is unsuitable for this kind of low-level memory work anyway, but I'll skip most of that spiel), and both codeUnits and runes do not give me identical data to the stuff I get out of the barcode using dmtxread (they are the same).

EDIT: Realized that if anybody wanted to test with that barcode they'd need the correct hash: run pineapple_pie through md5 and you should get the same binary data that is stored in that code.

Creating docs

The example is nice, however it would be better to have docs.

It could be in the wiki section or next to the code.

Conflict with firebase_core

It seems there is some kind of transitive dependency collision between the qr_mobile_vision plugin and the firebase_core plugin on Android. When both are present in a flutter project, and the camera is activated, the app crashes with:

ejecting re-init on previously-failed class java.lang.Class<com.google.android.gms.internal.zzdkv>: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/internal/zzbgl;
I/ple.alephwalle(25631):   at void com.github.rmtmckenzie.qrmobilevision.QrDetector.<init>(com.github.rmtmckenzie.qrmobilevision.QRReaderCallbacks, android.content.Context, int) (QrDetector.java:32)
I/ple.alephwalle(25631):   at void com.github.rmtmckenzie.qrmobilevision.QRReader.<init>(int, int, android.content.Context, int, com.github.rmtmckenzie.qrmobilevision.QRReader$QRReaderStartedCallback, com.github.rmtmckenzie.qrmobilevision.QRReaderCallbacks, android.graphics.SurfaceTexture) (QRReader.java:44)

Recipe: add the following dependency to the example project:

dependencies:
  firebase_core: "^0.2.4"
  flutter:
    sdk: flutter

Push the button and crash.

It feels maybe like an obfuscated class reference collision between versions of a jar file somewhere in the dependency tree for the google play services...?

No autofocus on Xiaomi A2 (Android One)

Android System 8.1.0 - 5 November 2018.

Not sure if it matters, but this unit has two rear cameras.

Launching lib/main.dart on Mi A2 in debug mode...
Initializing gradle...
Resolving dependencies...
Gradle task 'assembleDebug'...
Built build/app/outputs/apk/debug/app-debug.apk.
Installing build/app/outputs/apk/app.apk...
Syncing files to device Mi A2...
I/cgr.qrmv.QrReader(32402): Using new camera API.
I/cgr.qrmv.QrDetector(32402): Making detector2 for formats: 256
W/DynamiteModule(32402): Local module descriptor class for com.google.android.gms.vision.dynamite.barcode not found.
I/DynamiteModule(32402): Considering local module com.google.android.gms.vision.dynamite.barcode:0 and remote module com.google.android.gms.vision.dynamite.barcode:0
D/BarcodeNativeHandle(32402): Cannot load feature, fall back to load whole module.
W/DynamiteModule(32402): Local module descriptor class for com.google.android.gms.vision.dynamite not found.
W/zygote64(32402): Unsupported class loader
W/zygote64(32402): Skipping duplicate class check due to unsupported classloader
I/DynamiteModule(32402): Considering local module com.google.android.gms.vision.dynamite:0 and remote module com.google.android.gms.vision.dynamite:1800
I/DynamiteModule(32402): Selected remote version of com.google.android.gms.vision.dynamite, version >= 1800
W/zygote64(32402): Unsupported class loader
I/Vision (32402): Loading library libbarhopper.so
I/zygote64(32402): The ClassLoaderContext is a special shared library.
I/zygote64(32402): The ClassLoaderContext is a special shared library.
W/linker (32402): "/data/data/com.google.android.gms/app_vision/barcode/libs/arm64-v8a/libbarhopper.so" unused DT entry: type 0x7ffffffd arg 0x6dd
I/Vision (32402): libbarhopper.so library load status: true
I/DynamiteModule(32402): Considering local module com.google.android.gms.flags:2 and remote module com.google.android.gms.flags:3
I/DynamiteModule(32402): Selected remote version of com.google.android.gms.flags, version >= 3
W/zygote64(32402): Unsupported class loader
I/CameraManagerGlobal(32402): Connecting to camera service
W/CameraManagerGlobal(32402): [soar.cts] ignore the status update of camera: 2
W/CameraManagerGlobal(32402): [soar.cts] ignore the status update of camera: 3
E/libc (32402): Access denied finding property "camera.aux.packagelist"
W/Binder:32402_3(32402): type=1400 audit(0.0:10464): avc: denied { read } for name="u:object_r:camera_prop:s0" dev="tmpfs" ino=12226 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:camera_prop:s0 tclass=file permissive=0
E/libc (32402): Access denied finding property "camera.aux.packagelist"
W/Binder:32402_3(32402): type=1400 audit(0.0:10465): avc: denied { read } for name="u:object_r:camera_prop:s0" dev="tmpfs" ino=12226 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:camera_prop:s0 tclass=file permissive=0
E/libc (32402): Access denied finding property "camera.aux.packagelist"
W/CameraManagerGlobal(32402): ignore the torch status update of camera: 2
E/libc (32402): Access denied finding property "camera.aux.packagelist"
W/CameraManagerGlobal(32402): ignore the torch status update of camera: 3
W/Binder:32402_3(32402): type=1400 audit(0.0:10467): avc: denied { read } for name="u:object_r:camera_prop:s0" dev="tmpfs" ino=12226 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:camera_prop:s0 tclass=file permissive=0
I/zygote64(32402): Do partial code cache collection, code=30KB, data=22KB
I/zygote64(32402): After code cache collection, code=30KB, data=22KB
I/zygote64(32402): Increasing code cache capacity to 128KB
E/libc (32402): Access denied finding property "persist.camera.cfa.packagelist"
W/.app.extraorder(32402): type=1400 audit(0.0:10468): avc: denied { read } for name="u:object_r:camera_prop:s0" dev="tmpfs" ino=12226 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:camera_prop:s0 tclass=file permissive=0
I/CameraManager(32402): Using legacy camera HAL.
E/libc (32402): Access denied finding property "camera.hal1.packagelist"
W/Thread-2(32402): type=1400 audit(0.0:10469): avc: denied { read } for name="u:object_r:camera_prop:s0" dev="tmpfs" ino=12226 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:camera_prop:s0 tclass=file permissive=0
E/libc (32402): Access denied finding property "camera.aux.packagelist"
W/Binder:32402_3(32402): type=1400 audit(0.0:10470): avc: denied { read } for name="u:object_r:camera_prop:s0" dev="tmpfs" ino=12226 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:camera_prop:s0 tclass=file permissive=0
I/cgr.qrmv.QrCameraC2(32402): Setting af mode to: 4
I/CameraDeviceState(32402): Legacy camera service transitioning to state CONFIGURING
I/RequestThread-0(32402): Configure outputs: 2 surfaces configured.
D/Camera (32402): app passed NULL surface
D/Camera (32402): Lct package name is extraorder.app.extraorder
W/CameraDeviceGLT(32402): type=1400 audit(0.0:10472): avc: denied { read } for name="u:object_r:camera_prop:s0" dev="tmpfs" ino=12226 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:camera_prop:s0 tclass=file permissive=0
E/libc (32402): Access denied finding property "persist.camera.legacy_perf"
I/CameraDeviceState(32402): Legacy camera service transitioning to state IDLE
I/RequestQueue(32402): Repeating capture request set.
W/LegacyRequestMapper(32402): convertRequestMetadata - control.awbRegions setting is not supported, ignoring value
W/LegacyRequestMapper(32402): Only received metering rectangles with weight 0.
W/LegacyRequestMapper(32402): Only received metering rectangles with weight 0.
I/CameraDeviceState(32402): Legacy camera service transitioning to state CAPTURING
I/zygote64(32402): Do partial code cache collection, code=61KB, data=41KB
I/zygote64(32402): After code cache collection, code=61KB, data=41KB
I/zygote64(32402): Increasing code cache capacity to 256KB
D/LegacyFocusStateMapper(32402): onAutoFocusMoving - ignoring move callbacks from old af run6
D/LegacyFocusStateMapper(32402): onAutoFocusMoving - ignoring move callbacks from old af run17
D/LegacyFocusStateMapper(32402): onAutoFocusMoving - ignoring move callbacks from old af run84
D/LegacyFocusStateMapper(32402): onAutoFocusMoving - ignoring move callbacks from old af run108
I/zygote64(32402): Do full code cache collection, code=122KB, data=85KB
I/zygote64(32402): After code cache collection, code=93KB, data=55KB
D/LegacyFocusStateMapper(32402): onAutoFocusMoving - ignoring move callbacks from old af run270
I/zygote64(32402): Do partial code cache collection, code=106KB, data=77KB
I/zygote64(32402): After code cache collection, code=106KB, data=77KB
I/zygote64(32402): Increasing code cache capacity to 512KB
D/LegacyFocusStateMapper(32402): onAutoFocusMoving - ignoring move callbacks from old af run315
D/LegacyFocusStateMapper(32402): onAutoFocusMoving - ignoring move callbacks from old af run458
E/BufferQueueProducer(32402): [SurfaceTexture-1-32402-1] queueBuffer: BufferQueue has been abandoned
E/BufferQueueProducer(32402): [SurfaceTexture-1-32402-1] cancelBuffer: BufferQueue has been abandoned
I/chatty (32402): uid=10124(extraorder.app.extraorder) Binder:32402_3 identical 1 line
E/BufferQueueProducer(32402): [SurfaceTexture-1-32402-1] cancelBuffer: BufferQueue has been abandoned
E/libc (32402): Access denied finding property "camera.aux.packagelist"

Hope that helps.

Issue with dual-camera phones

Hello! I tried the plugin on multiple devices and some of them couldn't use it.

Confirmed

  • Essential Phone, PH1

Reportedly

  • LG X Power
  • Some random Samsung tablet

Here's a screenshot taken with an Essential Phone.

screenshot_20180426-134608

The camera was pointed at a desk. The computer is under the desk and a a screen and a water bottle are on the desk.

As you can see, the image is severely horizontally stretched. I suspect the dual-camera to be the origin of the issue, though I can't tell for sure because some random other devices apparently also have this problem, and they don't have dual-cameras.

Android camera image is wrong

Hello,
Thanks for this plugin! It's the only one who is really embedded into a flutter app and not just call for external screen and wait for the answer ^^

Unfortunately it's not working for me, I test on Android (Mi Mix 2 with Android 8.0.0), here is what I have (portrait and landscape which is even worse as when you move it didn't go the correct way)

device-2018-05-20-172048
device-2018-05-20-172023

And this is a native barcode scanner I have on my phone
device-2018-05-20-172121

Any idea what could be wrong ?

Scaling is off on Android

On iOS, the current scaling method works. On Android, it doesn't.

Need to do check for Android vs iOS, and do old scaling method on Android.

Camera FPS too low - iPhone 5s

First of all - big thanks for this plugin!

I have a problem with camera fps on iPhone 5s - it is not smooth, its working very slow.

I set barcode type only to QR_CODE - its a little better, but still not usable.

On my old Android Samsung S4 (i9505) its working nice and smooth. Do you know what could be done to optimise it?

App in background don't pause the camera

On my mi mix 2 if I tap the home button to leave the app in background, the camera still run and show on logs :

I/RequestThread-0(28712): Producing jpeg buffer...
I/RequestThread-0(28712): Received jpeg.
I/RequestThread-0(28712): Producing jpeg buffer...
I/RequestThread-0(28712): Received jpeg.
I/RequestThread-0(28712): Producing jpeg buffer...
I/RequestThread-0(28712): Received jpeg.
I/RequestThread-0(28712): Producing jpeg buffer...
I/RequestThread-0(28712): Received jpeg.
I/RequestThread-0(28712): Producing jpeg buffer...

PS: would be also nice to don't have those output ^^ it pollute our logs and seing our log became complicate

Camera view not starting.

I have the QrCamera widget in my widget tree, and the following Exception occurs.

'package:qr_mobile_vision/qr_mobile_vision.dart': Failed assertion: line 43 pos 12: 'details is Map<String, dynamic>': is not true.

This happens on both Android and iOS.

Preview stops when coming back from another screen

Hi,

This library is great! You saved me a lot of time.

The only problem is, when I move to the next screen with Navigator.push() and come back with Navigator.pop(), the preview and scanner stop working :/

Silent failure when no Camera Usage Description in info.plist.

Create a new flutter project using example as main.dart. Getting only black screen on iPhone7.

However, running example in your plug-in project works. I'm assuming it's an invalid programmer at keyboard error, but is there additional set up I need to do? Any clues?

Using pubspec.yaml:

dependencies:
  flutter:
    sdk: flutter

  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^0.1.2
  qr_mobile_vision: ^0.1.0

Crash when user decline camera permission on Android

Hello,

I'm testing with a Google Pixel 2 on android 9,

Each time I decline the camera permission, the onError parameter of QrCamera is not called, instead, it throws an exception.

I tested it on your provided example and it reacted exactly the same way.

Here is the console log :

Launching lib/main.dart on Pixel 2 in debug mode...
Built build/app/outputs/apk/debug/app-debug.apk.
I/cgr.qrmv.QrReader(11740): Using new camera API.
I/cgr.qrmv.QrDetector(11740): Making detector2 for formats: 0
W/DynamiteModule(11740): Local module descriptor class for com.google.android.gms.vision.dynamite.barcode not found.
I/DynamiteModule(11740): Considering local module com.google.android.gms.vision.dynamite.barcode:0 and remote module com.google.android.gms.vision.dynamite.barcode:0
D/BarcodeNativeHandle(11740): Cannot load feature, fall back to load whole module.
W/DynamiteModule(11740): Local module descriptor class for com.google.android.gms.vision.dynamite not found.
W/mple.presencev(11740): Unsupported class loader
W/mple.presencev(11740): Skipping duplicate class check due to unsupported classloader
I/DynamiteModule(11740): Considering local module com.google.android.gms.vision.dynamite:0 and remote module com.google.android.gms.vision.dynamite:1800
I/DynamiteModule(11740): Selected remote version of com.google.android.gms.vision.dynamite, version >= 1800
W/mple.presencev(11740): Unsupported class loader
I/Vision (11740): Loading library libbarhopper.so
I/mple.presencev(11740): The ClassLoaderContext is a special shared library.
I/chatty (11740): uid=10273(com.example.presencev2) identical 1 line
I/mple.presencev(11740): The ClassLoaderContext is a special shared library.
W/mple.presencev(11740): Accessing hidden method Ldalvik/system/VMRuntime;->getRuntime()Ldalvik/system/VMRuntime; (light greylist, reflection)
W/mple.presencev(11740): Accessing hidden method Ldalvik/system/VMRuntime;->is64Bit()Z (light greylist, reflection)
W/linker (11740): Warning: "/data/data/com.google.android.gms/app_vision/barcode/libs/arm64-v8a/libbarhopper.so" unused DT entry: unknown processor-specific (type 0x7ffffffd arg 0x6dd) (ignoring)
I/Vision (11740): libbarhopper.so library load status: true
I/DynamiteModule(11740): Considering local module com.google.android.gms.flags:2 and remote module com.google.android.gms.flags:3
I/DynamiteModule(11740): Selected remote version of com.google.android.gms.flags, version >= 3
W/mple.presencev(11740): Unsupported class loader
W/mple.presencev(11740): Accessing hidden field Ljava/nio/Buffer;->address:J (light greylist, reflection)
I/cgr.qrmv.QrMobVisPlugin(11740): Permissions request denied.
W/cgr.qrmv.QrMobVisPlugin(11740): Starting QR Mobile Vision failed
W/cgr.qrmv.QrMobVisPlugin(11740): com.github.rmtmckenzie.qrmobilevision.QrReader$Exception: QR reader failed because noPermissions
W/cgr.qrmv.QrMobVisPlugin(11740): at com.github.rmtmckenzie.qrmobilevision.QrMobileVisionPlugin.onRequestPermissionsResult(QrMobileVisionPlugin.java:64)
W/cgr.qrmv.QrMobVisPlugin(11740): at io.flutter.app.FlutterPluginRegistry.onRequestPermissionsResult(FlutterPluginRegistry.java:191)
W/cgr.qrmv.QrMobVisPlugin(11740): at io.flutter.app.FlutterActivityDelegate.onRequestPermissionsResult(FlutterActivityDelegate.java:125)
W/cgr.qrmv.QrMobVisPlugin(11740): at io.flutter.app.FlutterActivity.onRequestPermissionsResult(FlutterActivity.java:133)
W/cgr.qrmv.QrMobVisPlugin(11740): at android.app.Activity.dispatchRequestPermissionsResult(Activity.java:7616)
W/cgr.qrmv.QrMobVisPlugin(11740): at android.app.Activity.dispatchActivityResult(Activity.java:7466)
W/cgr.qrmv.QrMobVisPlugin(11740): at android.app.ActivityThread.deliverResults(ActivityThread.java:4391)
W/cgr.qrmv.QrMobVisPlugin(11740): at android.app.ActivityThread.handleSendResult(ActivityThread.java:4440)
W/cgr.qrmv.QrMobVisPlugin(11740): at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:49)
W/cgr.qrmv.QrMobVisPlugin(11740): at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
W/cgr.qrmv.QrMobVisPlugin(11740): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
W/cgr.qrmv.QrMobVisPlugin(11740): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
W/cgr.qrmv.QrMobVisPlugin(11740): at android.os.Handler.dispatchMessage(Handler.java:106)
W/cgr.qrmv.QrMobVisPlugin(11740): at android.os.Looper.loop(Looper.java:193)
W/cgr.qrmv.QrMobVisPlugin(11740): at android.app.ActivityThread.main(ActivityThread.java:6718)
W/cgr.qrmv.QrMobVisPlugin(11740): at java.lang.reflect.Method.invoke(Native Method)
W/cgr.qrmv.QrMobVisPlugin(11740): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
W/cgr.qrmv.QrMobVisPlugin(11740): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

Failed assertion previewDetails is null

On a phone in 4.2.2 I have this error

V/Provider/Settings( 8162): invalidate [system]: current 13 != cached 12
V/Provider/Settings( 8162): from db cache, name = sound_effects_enabled , value = 0
I/SurfaceTextureClient( 8162): [STC::queueBuffer] (this:0x554be010) fps:4.90, dur:6734.60, max:5847.55, min:10.42
I/SurfaceTextureClient( 8162): [STC::queueBuffer] this:0x554be010, api:1, last queue time elapsed:5847.55
I/BufferQueue( 8162): [unnamed-8162-2](this:0x55902d40,api:0) BufferQueue
I/BufferQueue( 8162): [unnamed-8162-2](this:0x55902d40,api:0) consumerConnect
I/BufferQueue( 8162): [unnamed-8162-2](this:0x55902d40,api:0) setConsumerName: unnamed-8162-2
I/SurfaceTexture( 8162): [unnamed-8162-2](this:0x5616a708,api:0) SurfaceTexture
I/SurfaceTexture( 8162): [unnamed-8162-2](this:0x5616a708,api:0) detachFromContext
I/System.out( 8162): Making detector for formats: 0
W/DynamiteModule( 8162): Local module descriptor class for com.google.android.gms.vision.dynamite.barcode not found.
D/ActivityThread( 8162): installProvider: context=android.app.ContextImpl@40f67c30holder=android.app.IActivityManager$ContentProviderHolder@40fcb4c8noisy=truenoReleaseNeeded=falsestable=false
I/DynamiteModule( 8162): Considering local module com.google.android.gms.vision.dynamite.barcode:0 and remote module com.google.android.gms.vision.dynamite.barcode:0
D/BarcodeNativeHandle( 8162): Cannot load feature, fall back to load whole module.
W/DynamiteModule( 8162): Local module descriptor class for com.google.android.gms.vision.dynamite not found.
I/DynamiteModule( 8162): Considering local module com.google.android.gms.vision.dynamite:0 and remote module com.google.android.gms.vision.dynamite:1702
I/DynamiteModule( 8162): Selected remote version of com.google.android.gms.vision.dynamite, version >= 1702
D/ActivityThread( 8162): getPackageInfo: securityViolation=true
I/Vision  ( 8162): Loading library libbarhopper.so
I/Vision  ( 8162): libbarhopper.so library load status: true
E/Camera  ( 8162): fengke getCameraInfo1
E/Camera  ( 8162): fengke getCameraInfo2 cameraInfo.mCamSensorID = 113
D/Camera-JNI( 8162): (tid:8162)[MtkJNICameraContext] this:0x56ef3fa8 camera->getStrongCount(3) 
E/Camera  ( 8162): fengke getCameraInfo1
E/Camera  ( 8162): fengke getCameraInfo2 cameraInfo.mCamSensorID = 113
I/Camera  ( 8162): Camera framework getParameters =afeng-max-focus-step=0;afeng-min-focus-step=0;antibanding=off;antibanding-values=off,50hz,60hz;auto-exposure-lock-supported=false;auto-whitebalance-lock-supported=false;brightness_value=0;burst-num=1;cap-mode=normal;cap-mode-values=normal,continuousshot,smileshot,autorama;capfname=/sdcard/DCIM/cap00;effect=none;effect-values=none,mono,negative,sepia,sepiablue;exposure-compensation=0;exposure-compensation-step=1.0;fb-sharp=0;fb-sharp-max=4;fb-sharp-min=-4;fb-skin-color=0;fb-skin-color-max=4;fb-skin-color-min=-4;fb-smooth-level=0;fb-smooth-level-max=4;fb-smooth-level-min=-4;focal-length=3.5;focus-distances=0.95,1.9,Infinity;focus-mode=infinity;focus-mode-values=infinity;horizontal-view-angle=63;iso-speed=auto;iso-speed-values=auto;jpeg-quality=100;jpeg-thumbnail-height=128;jpeg-thumbnail-quality=100;jpeg-thumbnail-size-values=0x0,160x128,320x240;jpeg-thumbnail-width=160;max-exposure-compensation=1;max-num-detected-faces-hw=15;max-num-detected-faces-sw=0;max-num-focus-areas=0;max-num-metering-areas=0;max-zoom=10;min-exposure-compensation=-1;mtk-cam-mode=0;picture-format=jpeg;picture-format-values=jpeg;picture-size=640x480;picture-size-values=176x144,320x240,640x480,600x400,1200x800,1024x768,1680x1120,1600x1200;preferred-preview-size-for-video=480x320;preview-format=yuv420sp;preview-format-values=yuv420sp,yuv420p,yuv420i-yyuvyy-3plane;preview-fps-range=5000,60000;preview-fps-range-values=(5000,60000);preview-frame-rate=30;preview-frame-rate-values=15,30;preview-size=320x240;preview-size-values=176x144,320x240,352x288,384x288,480x320;rotation=0;scene-mode=auto;scene-mode-values=auto,night,hdr;smooth-zoom-supported=true;vertical-view-angle=49;video-frame-format=yuv420i-yyuvyy-3plane;video-size=320x240;video-size-values=176x144,320x240,480x320,640x480,600x400;video-stabilization=false;video-stabilization-supported=false;whitebalance=auto;whitebalance-values=auto,incandescent,daylight,cloudy-daylight,fluorescent,tungsten;zoom=0;zoom-ratios=100,114,132,151,174,200,229,263,303,348,400;zoom-supported=true;zsd-mode=off;zsd-mode-values=off,on
E/MethodChannel#com.github.rmtmckenzie/qr_mobile_vision( 8162): Failed to handle method call
E/MethodChannel#com.github.rmtmckenzie/qr_mobile_vision( 8162): java.lang.IllegalArgumentException: Unsupported value: [Ljava.lang.StackTraceElement;@41063990
E/MethodChannel#com.github.rmtmckenzie/qr_mobile_vision( 8162): 	at io.flutter.plugin.common.StandardMessageCodec.writeValue(StandardMessageCodec.java:293)
E/MethodChannel#com.github.rmtmckenzie/qr_mobile_vision( 8162): 	at io.flutter.plugin.common.StandardMethodCodec.encodeErrorEnvelope(StandardMethodCodec.java:70)
E/MethodChannel#com.github.rmtmckenzie/qr_mobile_vision( 8162): 	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler$1.error(MethodChannel.java:199)
E/MethodChannel#com.github.rmtmckenzie/qr_mobile_vision( 8162): 	at com.github.rmtmckenzie.qrmobilevision.QrMobileVisionPlugin.startingFailed(QrMobileVisionPlugin.java:145)
E/MethodChannel#com.github.rmtmckenzie/qr_mobile_vision( 8162): 	at com.github.rmtmckenzie.qrmobilevision.QRReader.continueStarting(QRReader.java:113)
E/MethodChannel#com.github.rmtmckenzie/qr_mobile_vision( 8162): 	at com.github.rmtmckenzie.qrmobilevision.QRReader.start(QRReader.java:92)
E/MethodChannel#com.github.rmtmckenzie/qr_mobile_vision( 8162): 	at com.github.rmtmckenzie.qrmobilevision.QrMobileVisionPlugin.onMethodCall(QrMobileVisionPlugin.java:92)
E/MethodChannel#com.github.rmtmckenzie/qr_mobile_vision( 8162): 	at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:191)
E/MethodChannel#com.github.rmtmckenzie/qr_mobile_vision( 8162): 	at io.flutter.view.FlutterNativeView.handlePlatformMessage(FlutterNativeView.java:152)
E/MethodChannel#com.github.rmtmckenzie/qr_mobile_vision( 8162): 	at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#com.github.rmtmckenzie/qr_mobile_vision( 8162): 	at android.os.MessageQueue.next(MessageQueue.java:128)
E/MethodChannel#com.github.rmtmckenzie/qr_mobile_vision( 8162): 	at android.os.Looper.loop(Looper.java:151)
E/MethodChannel#com.github.rmtmckenzie/qr_mobile_vision( 8162): 	at android.app.ActivityThread.main(ActivityThread.java:5400)
E/MethodChannel#com.github.rmtmckenzie/qr_mobile_vision( 8162): 	at java.lang.reflect.Method.invokeNative(Native Method)
E/MethodChannel#com.github.rmtmckenzie/qr_mobile_vision( 8162): 	at java.lang.reflect.Method.invoke(Method.java:525)
E/MethodChannel#com.github.rmtmckenzie/qr_mobile_vision( 8162): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:837)
E/MethodChannel#com.github.rmtmckenzie/qr_mobile_vision( 8162): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604)
E/MethodChannel#com.github.rmtmckenzie/qr_mobile_vision( 8162): 	at dalvik.system.NativeStart.main(Native Method)
I/flutter ( 8162): CashRegisterModeChangedAction  = CashRegisterMode.scan
I/flutter ( 8162): 1
I/flutter ( 8162): Another exception was thrown: 'package:qr_mobile_vision/qr_camera.dart': Failed assertion: line 115 pos 16: 'previewDetails != null': is not true.

Any idea why ?

Add ability to scan once instead of multiple times

Great Work on this package! very helpful, thanks.
I have this issue,
I have this :

qrCodeCallback: (code) {
        var route = MaterialPageRoute(
          builder: (BuildContext context) => ProductDetails(
                productCode: code,
              ),
        );
        return Navigator.of(context).push(route);
      }

and it builds too many pages.
Also, is there a specific example on how to work with the QrCameraState as the GlobalKey? a bit confused on that part.

Request download for engine barcode "loop"

I've cloned the git repo, and started the example on Android.
Pressed the FAB, given permissions and seen the camera widget animate however no QRCode can be scanned.
In the terminal I get the following warnings and infos:

W/DynamiteModule( 4967): Local module descriptor class for com.google.android.gms.vision.dynamite not found.
I/DynamiteModule( 4967): Considering local module com.google.android.gms.vision.dynamite:0 and remote module com.google.android.gms.vision.dynamite:1702
I/DynamiteModule( 4967): Selected remote version of com.google.android.gms.vision.dynamite, version >= 1702
W/System ( 4967): ClassLoader referenced unknown path:
W/System ( 4967): ClassLoader referenced unknown path: /data/user_de/0/com.google.android.gms/app_chimera/m/00000067/n/arm64-v8a
I/Vision ( 4967): Loading library libbarhopper.so
I/Vision ( 4967): libbarhopper.so library load status: false
I/Vision ( 4967): Request download for engine barcode
I/SendBroadcastPermission( 4967): action:null, mPermissionType:0
W/BarcodeNativeHandle( 4967): Native handle not yet available. Reverting to no-op handle.
I/CameraManagerGlobal( 4967): Connecting to camera service
W/DynamiteModule( 4967): Local module descriptor class for com.google.android.gms.vision.dynamite not found.
I/DynamiteModule( 4967): Considering local module com.google.android.gms.vision.dynamite:0 and remote module com.google.android.gms.vision.dynamite:1702
I/DynamiteModule( 4967): Selected remote version of com.google.android.gms.vision.dynamite, version >= 1702

Especially these five lines keep looping:

I/Vision ( 4967): Loading library libbarhopper.so
I/Vision ( 4967): libbarhopper.so library load status: false
W/DynamiteModule( 4967): Local module descriptor class for com.google.android.gms.vision.dynamite not found.
I/DynamiteModule( 4967): Considering local module com.google.android.gms.vision.dynamite:0 and remote module com.google.android.gms.vision.dynamite:1702
I/DynamiteModule( 4967): Selected remote version of com.google.android.gms.vision.dynamite, version >= 1702

From what I've understood something went wrong in the download of the vision model necessary for this package to run.
Is there some way to monitor the downloading of said module or to have some way to intercept this issue on Flutter to behave differently from a camera that will never detect a QRCode?
Also anyone knows how to fix this? If needed I'll post this point on StackOverflow.

Duplicate symbol in GoogleMobileVision and GoogleSignin

duplicate symbol _OBJC_IVAR_$_MDMPasscodeCache._localAuthenticationInfo in:
        /Volumes/WD/New Users Home/craigfransen/IntelliJ_Projects/tagger_mob/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeCache_f189776e75765630b82721fafea64052.o)
        /Volumes/WD/New Users Home/craigfransen/IntelliJ_Projects/tagger_mob/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeCache_42de90102bb6814d03833694aafcc99d.o)

I know this is not your issue, but wondering if you know of a workaround


UPDATE: one workaround is to

pod 'GoogleSignIn', '4.1.2'

And change the deploment target in XCode to 9.0


Now that that is running, I'm getting black picture in QRCamera frame. Sigh.

Dropping frames on Oneplus 6

Even with provided example app when the preview is opened the camera window stutters a lot and I get a lot of log like this regardless of what is camera looking at:

I/System.out(28650): Dropping frame
I/System.out(28650): Dropping frame
I/System.out(28650): Dropping frame
I/System.out(28650): Dropping frame
I/System.out(28650): Dropping frame
I/System.out(28650): Dropping frame
I/chatty  (28650): uid=10166(com.github.rmtmckenzie.qrmobilevisionexample) AsyncTask #1 identical 15 lines

Suggestion: Change the camera

I'm using the plugin in a tablet and by default it opens the front camera. I would like to use the back camera y default and have the possibility to change during runtime the camera that is being used.

Flutter: Build ios error : ld: 13 duplicate symbols for architecture x86_64

It seems like there are conflicts between GoogleMobileVision and GoogleMobileVision?

Getting errors when building Flutter ios:

duplicate symbol OBJC_IVAR$_MDMPasscodeCache._localAuthenticationInfo in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeCache_f189776e75765630b82721fafea64052.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeCache_42de90102bb6814d03833694aafcc99d.o) duplicate symbol OBJC_IVAR$_MDMPasscodeCache._keychainInfo in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeCache_f189776e75765630b82721fafea64052.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeCache_42de90102bb6814d03833694aafcc99d.o) duplicate symbol OBJC_IVAR$_MDMPasscodeCache._hasLocalAuthentication in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeCache_f189776e75765630b82721fafea64052.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeCache_42de90102bb6814d03833694aafcc99d.o) duplicate symbol OBJC_IVAR$_MDMPasscodeCache._hasKeychain in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeCache_f189776e75765630b82721fafea64052.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeCache_42de90102bb6814d03833694aafcc99d.o) duplicate symbol OBJC_IVAR$_MDMPasscodeCache._cachedState in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeCache_f189776e75765630b82721fafea64052.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeCache_42de90102bb6814d03833694aafcc99d.o) duplicate symbol OBJC_IVAR$_MDMPasscodeCache._keychainExpireTime in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeCache_f189776e75765630b82721fafea64052.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeCache_42de90102bb6814d03833694aafcc99d.o) duplicate symbol OBJC_CLASS$_MDMPasscodeCache in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeCache_f189776e75765630b82721fafea64052.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeCache_42de90102bb6814d03833694aafcc99d.o) duplicate symbol OBJC_METACLASS$_MDMPasscodeCache in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeCache_f189776e75765630b82721fafea64052.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeCache_42de90102bb6814d03833694aafcc99d.o) duplicate symbol OBJC_IVAR$_MDMPasscodeCache._hasEnteredBackground in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeCache_f189776e75765630b82721fafea64052.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeCache_42de90102bb6814d03833694aafcc99d.o) duplicate symbol OBJC_IVAR$_MDMPasscodeState._status in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeState_d2697588db599ad1e82d46f342216cee.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeState_adbe96d99863168799049cc0f0164c6d.o) duplicate symbol OBJC_IVAR$_MDMPasscodeState._info in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeState_d2697588db599ad1e82d46f342216cee.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeState_adbe96d99863168799049cc0f0164c6d.o) duplicate symbol OBJC_CLASS$_MDMPasscodeState in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeState_d2697588db599ad1e82d46f342216cee.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeState_adbe96d99863168799049cc0f0164c6d.o) duplicate symbol OBJC_METACLASS$_MDMPasscodeState in: /Volumes/flutter/ios/Pods/GoogleMobileVision/Detector/Frameworks/GoogleMobileVision.framework/GoogleMobileVision(MDMPasscodeState_d2697588db599ad1e82d46f342216cee.o) /Volumes/flutter/ios/Pods/GoogleSignIn/Frameworks/GoogleSignIn.framework/GoogleSignIn(MDMPasscodeState_adbe96d99863168799049cc0f0164c6d.o) ld: 13 duplicate symbols for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.