【BUG系列】Android 7.0调用系统拍照崩溃,exposed beyond app through ClipData Item ge

Author Avatar
Wing_Li 02月 01,2018
  • 在其它设备中阅读本文章

如果本文帮助到你,本人不胜荣幸,如果浪费了你的时间,本人深感抱歉。
希望用最简单的大白话来帮助那些像我一样的人。如果有什么错误,请一定指出,以免误导大家、也误导我。
本文来自:http://www.jianshu.com/users/320f9e8f7fc9/latest_articles
感谢您的关注。

报错信息:
FATAL EXCEPTION: main
Process: com.yishu, PID: 5323
android.os.FileUriExposedException: file:///storage/emulated/0/image/1510308272335.jpg exposed beyond app through ClipData.Item.getUri()
android.os.StrictMode.onFileUriExposed(StrictMode.java:1816) 
android.net.Uri.checkFileUriExposed(Uri.java:2350)
android.content.ClipData.prepareToLeaveProcess(ClipData.java:832)
android.content.Intent.prepareToLeaveProcess(Intent.java:9054)
android.content.Intent.prepareToLeaveProcess(Intent.java:9039)
android.app.Instrumentation.execStartActivity(Instrumentation.java:1530)
android.app.Activity.startActivityForResult(Activity.java:4391)
android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:50)
android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:79)
android.app.Activity.startActivityForResult(Activity.java:4335)
android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:859)
解决办法:

在onCreate中调用如下代码:

/**
 * 解决7.0系统拍照崩溃问题
 */
private void initPhotoError(){
    StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
    StrictMode.setVmPolicy(builder.build());
    builder.detectFileUriExposure();
}