2019独角兽企业重金招聘Python工程师标准>>>
参考官方解释 https://developer.android.com/reference/android/os/FileUriExposedException.html
解决办法 https://developer.android.com/reference/android/support/v4/content/FileProvider.html
大致处理步骤:
1. 在mainfest中加入FileProvider注册
2. 新建res/xml/file_paths.xml文件
中可以定义以下子节点
子节点|对应路径|示例 --|--|-- files-path | Context.getFilesDir() |
3. 使用示例
File imagePath = new File(Context.getFilesDir(), "images");
File newFile = new File(imagePath, "default_image.jpg");
Uri contentUri = FileProvider.getUriForFile(getContext(), "App包名.fileprovider", newFile);
4. 遇到的问题
Attempt to invoke virtual method 'android.content.res.XmlResourceParser android.content.pm.PackageItemInfo.loadXmlMetaData(android.content.pm.PackageManager, java.lang.String)' on a null object reference
原因:mainfest中 android:authorities 与 代码 FileProvider.getUriForFile(getContext(), "App包名.fileprovider", newFile);App包名.fileprovider
不一致