MultiImageSelector
MultiImageSelector copied to clipboard
android.os.FileUriExposedException in android 7.0+
Please solve this problem which is causing after the 7.0 release. In 7.0+ Uri.fromFile is not working and giving the error android.os.FileUriExposedException. This can be solved by changing Uri.fromFile to FileProvider.getUriForFile. The issue occurs when we are taking picture.
Below is the full error :
android.os.FileUriExposedException: file:///storage/emulated/0/DCIM/IMG_1390008869.jpg exposed beyond app through ClipData.Item.getUri() at android.os.StrictMode.onFileUriExposed(StrictMode.java:1813) at android.net.Uri.checkFileUriExposed(Uri.java:2360) at android.content.ClipData.prepareToLeaveProcess(ClipData.java:832) at android.content.Intent.prepareToLeaveProcess(Intent.java:8957) at android.content.Intent.prepareToLeaveProcess(Intent.java:8942) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1583) at android.app.Activity.startActivityForResult(Activity.java:4228) at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:50) at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:79) at android.support.v4.app.ActivityCompatJB.startActivityForResult(ActivityCompatJB.java:30) at android.support.v4.app.ActivityCompat.startActivityForResult(ActivityCompat.java:146) at android.support.v4.app.FragmentActivity.startActivityFromFragment(FragmentActivity.java:937) at android.support.v4.app.FragmentActivity$HostCallbacks.onStartActivityFromFragment(FragmentActivity.java:1047) at android.support.v4.app.Fragment.startActivityForResult(Fragment.java:959) at android.support.v4.app.Fragment.startActivityForResult(Fragment.java:948) at me.nereo.multi_image_selector.MultiImageSelectorFragment.showCameraAction(MultiImageSelectorFragment.java:321) at me.nereo.multi_image_selector.MultiImageSelectorFragment.access$400(MultiImageSelectorFragment.java:56) at me.nereo.multi_image_selector.MultiImageSelectorFragment$2.onItemClick(MultiImageSelectorFragment.java:162) at android.widget.AdapterView.performItemClick(AdapterView.java:310) at android.widget.AbsListView.performItemClick(AbsListView.java:1155) at android.widget.AbsListView$PerformClick.run(AbsListView.java:3146) at android.widget.AbsListView$3.run(AbsListView.java:4061) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6123) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
同样的错误啊。
Same error.
来一个简单粗暴的解决办法:
http://blog.csdn.net/huangxiaoguo1/article/details/52830015?locationNum=2&fps=1
在Application的onCreat()方法中添加以下代码:
// android 7.0系统解决拍照的问题
StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
StrictMode.setVmPolicy(builder.build());
builder.detectFileUriExposure();
来一个简单粗暴的解决办法:
http://blog.csdn.net/huangxiaoguo1/article/details/52830015?locationNum=2&fps=1
在Application的onCreat()方法中添加以下代码:
// android 7.0系统解决拍照的问题 StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder(); StrictMode.setVmPolicy(builder.build()); builder.detectFileUriExposure();
亲测有效,Android Q