Android 8.0 勾选相册里面的图片出现的问题Failed to find configured root that contains/storage/emulated/xxx.jpg )

之前改项目代码 不知道改到了什么,今天测试上传头像功能,点击自己拍的照片APP就闪退了。报的错误就如标题那样,debug问题定位在了

Uri imageUri = FileProvider.getUriForFile(this, "com.xxx.xxx.fileprovider", new File(url));//通过FileProvider创建一个content类型的Uri

然而 检查代码 没啥毛病 啊 ,清单文件也注册了。
然后打开另外一个项目代码,找到了清单文件中 自定义的

<meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/file_paths" />

打开file_paths 的文件夹 乍看也没啥问题啊 ,对比之后 发现 path的路径写错了

//正确格式
<resources>
    <paths>
        <root-path path="" name="camera_photos" />

    </paths>
</resources>
//有问题的路径
<resources>
    <paths>
        <external-path path="" name="camera_photos" />

    </paths>
</resources>

好吧 对比之后才发现 不知道什么时候修改了路径,改成root-path之后就没问题了。查找了下资料 发现 我的图片其实是放在内部存储里面的 而标签里面的external-path代表外部存储区域的根目录下的文件,所以访问不到图片,就出问题啦。
附上讲的比较好的文章链接:https://blog.csdn.net/leilifengxingmw/article/details/57405908

更多推荐