PictureSelector 7.0及以上拍照或拍摄 出现的FileUriExposedException

本文详细介绍了在Android 7.0及以上版本中,使用PictureSelector进行图片选择或拍摄时遇到FileUriExposedException异常的解决方案。通过在清单文件中添加provider,修改PictureSelectorActivity中的路径引用,将file://转换为content://,并确保FileProvider.getUriForFile()方法的参数与清单文件一致。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为本人项目中用到第三方库图片选择器(PictureSelector),在选择器中点击拍照或者拍摄遇到点击事件不响应,遇到FileUriExposedException异常,在百度搜索好久都没有详细的解决资料,我在这里将解决办法告诉大家,希望能帮助到你们!

一、 FileUriExposedException 的原因

Android7.0及以上不识别uri以file://开头,要将其转换为content://才能识别uri

二、解决办法

1.在清单文件中加<provider/> 

${applicationId}:项目包名

2.在res目录下创建xml文件夹,创建file_paths.xml

3.仔细查看PictureSelector的源码,我是找到PictureSelectorActivity,在该activity中找到拍摄或者拍照的响应事件,修改响应事件时用到的路径(需要仔细找,多打断点),将file://改为conent://

  

注意、注意、注意,重要的事情说三遍:FileProvider.getUriForFile()方法的第二个参数名称一定要与清单文件中的(android:authorities="${applicationId}.fileProvider") 与${applicationId}.fileProvider一摸一样

 

参考:https://blog.youkuaiyun.com/trq2012/article/details/80568094

 

有什么不清楚的可以留言!希望能够帮助到大家!

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值