flutter_qrcode_reader icon indicating copy to clipboard operation
flutter_qrcode_reader copied to clipboard

Android app just crashes on startup just by adding the plugin to pubspec.yaml

Open peterlauri opened this issue 5 years ago • 13 comments

Just by simply adding the package the Android version crashes on startup. iOS works perfectly in debug and released version. We are not refering to the qrcode_reader anywhere in our code. We have android.permission.CAMERA in uses.permissions. Removing the package from pubspec.yaml gets the app going on Android again.

dependencies:
  flutter:
    sdk: flutter
  http: ^0.12.0
  shared_preferences: ^0.5.6
  qrcode_reader:
    git:
      url: git://github.com/bcko/flutter_qrcode_reader.git
      ref: f47a459

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

dev_dependencies:
  flutter_test:
    sdk: flutter

Flutter doctor.

➜  flutter_poc git:(impersonate-with-qrcode) ✗ flutter doctor -v
[✓] Flutter (Channel beta, v1.13.6, on Mac OS X 10.15.2 19C57, locale en-GB)
    • Flutter version 1.13.6 at /Users/plauri/.applications/flutter
    • Framework revision 659dc8129d (3 weeks ago), 2019-12-30 09:24:47 -0800
    • Engine revision bdc9708d23
    • Dart version 2.8.0 (build 2.8.0-dev.0.0 c547f5d933)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/plauri/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.3, Build version 11C29
    • CocoaPods version 1.8.4

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[!] Android Studio (version 3.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)

[✓] VS Code (version 1.41.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.7.1

[✓] Connected device (3 available)
    • PRA LX1    • 8NH7N17B04000425 • android-arm64  • Android 8.0.0 (API 26)
    • Chrome     • chrome           • web-javascript • Google Chrome 79.0.3945.130
    • Web Server • web-server       • web-javascript • Flutter Tools

! Doctor found issues in 1 category.

peterlauri avatar Jan 22 '20 09:01 peterlauri

@daadu did you test to build and use the plugin after this PR https://github.com/bcko/flutter_qrcode_reader/pull/57?

peterlauri avatar Jan 23 '20 09:01 peterlauri

Yes, it is working for me.

daadu avatar Jan 25 '20 08:01 daadu

@daadu is there any other permission than android.permission.CAMERA needed for this plugin to work?

peterlauri avatar Jan 26 '20 17:01 peterlauri

@daadu after the commit https://github.com/bcko/flutter_qrcode_reader/commit/a34c10c3a471ad0e2083a6205369e89a41639e17 the app builds and launches, the scanner also launches, but now crashes on scan. No errors...

peterlauri avatar Feb 06 '20 10:02 peterlauri

@daadu after the commit a34c10c the app builds and launches, the scanner also launches, but now crashes on scan. No errors...

This one was my commit. So just to clarify, before my commit the plugin was crashing on startup, but after if you are able to launch, just cannot scan?

Unsure what the issue is, but some questions: Did you place the camera permission in the correct part of the android manifest, and is it spelt correctly? What does Logcat say? Is your app using FlutterFragmentActivity (that is what my fix intended to address). Any other native code changes in your app?

lfwells avatar Feb 06 '20 11:02 lfwells

@lfwells

Actually, so the camera preview shows up, but crashes as soon as it finds a QR code it crashes. Same code works fine on iOS.

I'm don't know if the app uses FlutterFragmentActivity, I'm using a basic startup project, with no additional changes than added qrcode_reader@a34c10c to the pubspec.yaml

I'm not using Android Studio, just running it from VScode. Do not have Logcat enabled.

This is my full debug AndroidManifest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.flutter_poc">
    <!-- Flutter needs it to communicate with the running application
         to allow setting breakpoints, to provide hot reload, etc.
    -->
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.CAMERA"/>

    <uses-feature android:name="android.hardware.camera"/>
    <uses-feature android:name="android.hardware.camera.autofocus"/>
</manifest>

peterlauri avatar Feb 09 '20 06:02 peterlauri

hi @peterlauri i had the same error. I modified que line 141 in the class QRCodeReaderPlugin in my local repo. if (requestCode == REQUEST_CODE_SCAN_ACTIVITY ) to if (requestCode == REQUEST_CODE_SCAN_ACTIVITY && pendingResult != null)

aegislp avatar Feb 16 '20 18:02 aegislp

Might the comment https://github.com/bcko/flutter_qrcode_reader/issues/61#issuecomment-586739940 be a valid solution?

@aegislp submit a PR?

peterlauri avatar Feb 25 '20 18:02 peterlauri

Same issue for me. Just adding it to my app in pubspec.yaml crashes the app on Android simulator immediately after boot. iOS simulator has no issues.

rgbinnovation avatar May 18 '20 11:05 rgbinnovation

@aegislp can you please push this fix?

rgbinnovation avatar May 21 '20 11:05 rgbinnovation

@peterlauri or maybe you can do the fix and push it? I'm reliant on this package, would be greatly appreciated.

rgbinnovation avatar May 21 '20 11:05 rgbinnovation

Dit you get the pubspec.yaml to get the plugin as:

qrcode_reader: git: https://github.com/bcko/flutter_qrcode_reader.git

I can not publish to pub.dev unfortunately.

johanhenselmans avatar Jun 07 '20 20:06 johanhenselmans

Had the same issue, adding the .git package worked for me. 4 days trying to solve this crap! Thanks for the fix.

rgbinnovation avatar Jun 24 '21 13:06 rgbinnovation