Essentials
Essentials copied to clipboard
[Bug] MediaPicker.CapturePhotoAsync can't capture image on Android 4.4
Description
On Android 4.4 when I try to capture image with the MediaPicker.CapturePhotoAsync() method, the camera opens, I can take a photo, but than the message "Unfortunately, Camera has stopped" appears and CapturePhotoAsync method returns null.
In android manifest I have set all required permissions:
- android.permission.CAMERA
- android.permission.READ_EXTERNAL_STORAGE
- android.permission.WRITE_EXTERNAL_STORAGE
In Logcat I found the following error message:
02-08 10:58:16.211 1612-1780/system_process W/ActivityManager: Permission Denial: opening provider xamarin.essentials.fileProvider from ProcessRecord{9e350488 20610:com.android.camera/u0a30} (pid=20610, uid=10030) that is not exported from uid 10061 02-08 10:58:16.211 20610-20610/com.android.camera E/AndroidRuntime: FATAL EXCEPTION: main Process: com.android.camera, PID: 20610 java.lang.IllegalStateException: Could not execute method of the activity at android.view.View$1.onClick(View.java:3823) at android.view.View.performClick(View.java:4438) at android.view.View$PerformClick.run(View.java:18422) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5017) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at android.view.View$1.onClick(View.java:3818) at android.view.View.performClick(View.java:4438) at android.view.View$PerformClick.run(View.java:18422) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5017) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.SecurityException: Permission Denial: opening provider xamarin.essentials.fileProvider from ProcessRecord{9e350488 20610:com.android.camera/u0a30} (pid=20610, uid=10030) that is not exported from uid 10061 at android.os.Parcel.readException(Parcel.java:1465) at android.os.Parcel.readException(Parcel.java:1419) at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:2848) at android.app.ActivityThread.acquireProvider(ActivityThread.java:4415) at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2207) at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1425) at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:906) at android.content.ContentResolver.openOutputStream(ContentResolver.java:669) at android.content.ContentResolver.openOutputStream(ContentResolver.java:645) at com.android.camera.Camera.doAttach(Camera.java:1385) at com.android.camera.Camera.onReviewDoneClicked(Camera.java:1362) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at android.view.View$1.onClick(View.java:3818) at android.view.View.performClick(View.java:4438) at android.view.View$PerformClick.run(View.java:18422) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5017) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) at dalvik.system.NativeStart.main(Native Method)
Steps to Reproduce
- On Android 4.4 call MediaPicker.CapturePhotoAsync() method
- When the camera opens, take a photo
Expected Behavior
The photo is successfully captured
Actual Behavior
The photo is not captured, CapturePhotoAsync returns null, the message "Unfortunately, Camera has stopped" appears.
Same thing happening for me
I am also experiencing this, has anyone found a suitable workaround?
has anyone found a solution yet?