Skip to content

[camera] Empty permission callback case not handled on some Android devices  #116047

@davidmartos96

Description

@davidmartos96

Hello!
I'm using the camera package and I'm receiving a few Android crashes on Google Play with ArrayIndexOutOfBoundsException.

This occurs at: https://github.com/flutter/plugins/blob/0cd07eaeaa06f7d5322e34ce1f55523cd732cb11/packages/camera/camera_android/android/src/main/java/io/flutter/plugins/camera/CameraPermissions.java#L108

The Android docs note about this situation and explain that it should be treated as a cancellation of the permissions request.
https://developer.android.com/reference/android/app/Activity#onRequestPermissionsResult(int,%20java.lang.String[],%20int[])

Stack trace

Exception java.lang.RuntimeException:
  at android.app.ActivityThread.deliverResults (ActivityThread.java:5115)
  at android.app.ActivityThread.handleSendResult (ActivityThread.java:5156)
  at android.app.servertransaction.ActivityResultItem.execute (ActivityResultItem.java:51)
  at android.app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor.java:135)
  at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:95)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2084)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loop (Looper.java:223)
  at android.app.ActivityThread.main (ActivityThread.java:7888)
  at java.lang.reflect.Method.invoke (Method.java)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:592)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:981)
Caused by java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
  at io.flutter.plugins.camera.CameraPermissions$CameraRequestPermissionsListener.onRequestPermissionsResult (CameraPermissions.java:108)
  at io.flutter.embedding.engine.FlutterEngineConnectionRegistry$FlutterEngineActivityPluginBinding.onRequestPermissionsResult (FlutterEngineConnectionRegistry.java:777)
  at io.flutter.embedding.engine.FlutterEngineConnectionRegistry.onRequestPermissionsResult (FlutterEngineConnectionRegistry.java:409)
  at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onRequestPermissionsResult (FlutterActivityAndFragmentDelegate.java:757)
  at io.flutter.embedding.android.FlutterActivity.onRequestPermissionsResult (FlutterActivity.java:748)
  at android.app.Activity.dispatchRequestPermissionsResult (Activity.java:8485)
  at android.app.Activity.dispatchActivityResult (Activity.java:8333)
  at android.app.ActivityThread.deliverResults (ActivityThread.java:5108)

Flutter version: 3.3.8

Metadata

Metadata

Assignees

Labels

P1High-priority issues at the top of the work listc: crashStack traces logged to the consolep: cameraThe camera pluginpackageflutter/packages repository. See also p: labels.platform-androidAndroid applications specificallyr: fixedIssue is closed as already fixed in a newer version

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions