android-image-picker icon indicating copy to clipboard operation
android-image-picker copied to clipboard

java.lang.SecurityException com.esafirm.imagepicker.features.ImagePickerPresenter.captureImage

Open aruns2896 opened this issue 2 years ago • 3 comments

java.lang.SecurityException: 
  at android.os.Parcel.createExceptionOrNull (Parcel.java:2385)
  at android.os.Parcel.createException (Parcel.java:2369)
  at android.os.Parcel.readException (Parcel.java:2352)
  at android.os.Parcel.readException (Parcel.java:2294)
  at android.app.IActivityTaskManager$Stub$Proxy.startActivity (IActivityTaskManager.java:4259)
  at android.app.Instrumentation.execStartActivity (Instrumentation.java:1723)
  at android.app.Activity.startActivityForResult (Activity.java:5377)
  at androidx.activity.ComponentActivity.startActivityForResult (ComponentActivity.java:570)
  at androidx.core.app.ActivityCompat.startActivityForResult (ActivityCompat.java:237)
  at androidx.activity.ComponentActivity$2.onLaunch (ComponentActivity.java:204)
  at androidx.activity.result.ActivityResultRegistry$3.launch (ActivityResultRegistry.java:224)
  at androidx.activity.result.ActivityResultLauncher.launch (ActivityResultLauncher.java:47)
  at androidx.fragment.app.FragmentManager.launchStartActivityForResult (FragmentManager.java:2996)
  at androidx.fragment.app.Fragment.startActivityForResult (Fragment.java:1424)
  at androidx.fragment.app.Fragment.startActivityForResult (Fragment.java:1398)
  at com.esafirm.imagepicker.features.ImagePickerPresenter.captureImage (ImagePickerPresenter.java:111)
  at com.esafirm.imagepicker.features.ImagePickerFragment.captureImage (ImagePickerFragment.java:438)
  at com.esafirm.imagepicker.features.ImagePickerFragment.captureImageWithPermission (ImagePickerFragment.java:420)
  at com.esafirm.imagepicker.features.ImagePickerFragment.onCreateView (ImagePickerFragment.java:121)
  at androidx.fragment.app.Fragment.performCreateView (Fragment.java:2952)
  at androidx.fragment.app.FragmentStateManager.createView (FragmentStateManager.java:518)
  at androidx.fragment.app.FragmentStateManager.moveToExpectedState (FragmentStateManager.java:282)
  at androidx.fragment.app.FragmentManager.executeOpsTogether (FragmentManager.java:2189)
  at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute (FragmentManager.java:2100)
  at androidx.fragment.app.FragmentManager.execPendingActions (FragmentManager.java:2002)
  at androidx.fragment.app.FragmentManager.dispatchStateChange (FragmentManager.java:3134)
  at androidx.fragment.app.FragmentManager.dispatchActivityCreated (FragmentManager.java:3068)
  at androidx.fragment.app.FragmentController.dispatchActivityCreated (FragmentController.java:251)
  at androidx.fragment.app.FragmentActivity.onStart (FragmentActivity.java:501)
  at androidx.appcompat.app.AppCompatActivity.onStart (AppCompatActivity.java:210)
  at android.app.Instrumentation.callActivityOnStart (Instrumentation.java:1435)
  at android.app.Activity.performStart (Activity.java:8222)
  at android.app.ActivityThread.handleStartActivity (ActivityThread.java:3818)
  at android.app.servertransaction.TransactionExecutor.performLifecycleSequence (TransactionExecutor.java:221)
  at android.app.servertransaction.TransactionExecutor.cycleToPath (TransactionExecutor.java:201)
  at android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:173)
  at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:97)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2307)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loop (Looper.java:246)
  at android.app.ActivityThread.main (ActivityThread.java:8512)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:602)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1139)
Caused by: android.os.RemoteException: 
  at com.android.server.wm.ActivityStackSupervisor.checkStartAnyActivityPermission (ActivityStackSupervisor.java:1336)
  at com.android.server.wm.ActivityStarter.executeRequest (ActivityStarter.java:1260)
  at com.android.server.wm.ActivityStarter.execute (ActivityStarter.java:894)
  at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser (ActivityTaskManagerService.java:1715)
  at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser (ActivityTaskManagerService.java:1565)

Specifications

  • Image Picker Version: 2.4.7
  • Android OS: Android 11 (SDK 30) (Samsung's One UI)
  • Phone: Samsung Galaxy A31

aruns2896 avatar May 24 '22 04:05 aruns2896

Still hapening in 3.0.0-beta5

eldroid88 avatar Jul 19 '22 15:07 eldroid88

Steps to reproduce if you are having problem: remove CAMERA permission for the app, and then tap camera button in toolbar in this library. It will crash leaving this stacktrace

 returnMode = ReturnMode.ALL
 mode = ImagePickerMode.SINGLE

With this configuration, it should return to the app as soon as image is taken, and this is when exception happends.

If returnMode is set to ReturnMode.NONE, once user takes a photo, photo is added into the list in the library activity (list is not scrolled to the top -> another bad behavior), and you can select it, and it's working. But this is just a workaround untill main problem is fixed.

Samsung s20 Android 12

eldroid88 avatar Jul 19 '22 16:07 eldroid88

@eldroid88 is this only happened in Samsung devices?

esafirm avatar Nov 19 '22 22:11 esafirm