Android 多个FileProvider冲突的问题

Android7.0对文件的访问,框架使用StrictMode Api禁止我们的应用对外部(跨越应用分享)公开file://,在访问文件时需要增加FileProvider授权,这里不再赘述这个问题;

  当应用中存在多个FileProvider的时候(比如在引入了一个第三方开源,例takePhoto,开源框架为了适配android7.0文件的访问也使用了FileProvider),在编译时便会报错:

在报了错误信息之后androidStudio也给出了一个解决方法,增加 tools:replace="android:authorities"属性,这么一来编译时通过了,但是在使用takePhoto的时候却出现了致命错误UndeclaredThrowableException;

此时我们就会想到使用自定义的FileProvider来避免冲突,既自己写一个FileProvider继承自android.support.v4.content.FileProvider,然后在清单文件里完成配置;特别要注意一点(被这个细节小坑了一下),在配置自定义的FileProvider的时候,resource指向的xml一定要保证唯一,比如takePhoto使用了最原始的命名file_paths.xml,那么自定义的FileProvider需要用另一个xml配置(比如file_paths1.xml),避免takePhoto使用的异常(压缩图片失败等问题), 我自己花了较多的时间解决了这个Bug,希望能帮助后来人。

~~

 

转载于:https://www.cnblogs.com/cuma/p/8108400.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值