android 7.0 抛出 FileUriExposedException异常
2017-06-06 15:27
405 查看
参考官方解释 https://developer.android.com/reference/android/os/FileUriExposedException.html
解决办法 https://developer.android.com/reference/android/support/v4/content/FileProvider.html
大致处理步骤:
1. 在mainfest中加入FileProvider注册
<manifest> ... <application> ... <provider android:name="android.support.v4.content.FileProvider" android:authorities="App包名.fileProvider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths" /> </provider> ... </application> </manifest>
2. 新建res/xml/file_paths.xml文件
<paths xmlns:android="http://schemas.android.com/apk/res/android"> <files-path name="my_images" path="images/"/> <files-path name="my_docs" path="docs/"/> </paths>
<paths> 中可以定义以下子节点
子节点|对应路径|示例
--|--|--
files-path | Context.getFilesDir() | <files-path name="name" path="path" />
cache-path | Context.getCacheDir() | <cache-path name="name" path="path" />
external-path | Environment.getExternalStorageDirectory() | <external-path name="name" path="path" />
external-files-path | Context#getExternalFilesDir(String) Context.getExternalFilesDir(null) | <external-files-path name="name" path="path" />
external-cache-path | Context.getExternalCacheDir()|<external-cache-path name="name" path="path" />
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不一致
相关文章推荐
- ANDROID 7.0 上出现 android.os.FileUriExposedException 异常
- Android 7.0 出现 ”FileUriExposedException“ 和 ”解析包出现错误“ 异常的解决办法
- android 7.0读取文件报异常信息 - android.os.FileUriExposedException
- Android 7.0 FileUriExposedException 解决
- Android 7.0 FileUriExposedException 解决
- Android 7.0 FileUriExposedException 解决
- Android 7.0 系统相机崩溃解决android.os.FileUriExposedException
- Android 7.0的适配问题,android.os.FileUriExposedException
- android 7.0系统解决拍照的问题android.os.FileUriExposedException:file:///storage/emulated/0/test.txt
- 解决 Android N 7.0 上 报错:android.os.FileUriExposedException
- Android 7.0 Nougat FileUriExposedException 图片裁剪 文件分享
- Android 7.0 拍照 FileUriExposedException
- 解决 Android N 7.0 上 报错:android.os.FileUriExposedException
- 【适配整理】Android 7.0 调取系统相机崩溃解决android.os.FileUriExposedException
- 解决Android7.0系统 调用系统相机、系统播放器播放视频、切图兼容问题,报异常android.os.FileUriExposedException
- 开发中碰到的问题:Android 7.0 更新APK在安装时的报错 android.os.FileUriExposedException: file:///storage/emulated/0/And
- 解决 Android N 7.0 上 报错:android.os.FileUriExposedException
- Android 7.0 拍照并显示照片出现"FileUriExposedException"
- Android 7.0行为变更 FileUriExposedException解决方法
- Android 7.0 调取系统相机崩溃解决android.os.FileUriExposedException