Android FileProvider冲突处理方法

       众所周知,在android7.0是上做适配,需要额外添加FileProvider,因为选则文件的uri发现了一些变化。当然在android10.0的基础上做适配的话,就发现另外一些变化,这个可以另外一篇文章,但是总体变化不大。android10的适配

       今天要说的问题是,在日常项目开发中,因为种种需求,可能会引入一些三方库,这个三方库,一般都早已经适配了7.0,所以有自己path路径,而我们因为在项目开发的时候,自己应该也有文件选则路径,这个结果,就是导致项目报错。一般是下面这种错误,意思就是自己项目跟三方的开源库冲突了。

Android FileProvider冲突处理方法_第1张图片

        遇见这种情况,一般推荐几种做法,第一种项目本身两个FileProvider,两个合成一个即可,如下图所示


   ...

 
    
 

 
    
  
 ...

       这个是比较明显的,因为使用三方的SDK,三方的有自己个处理路径判断,这个时候我们合并一下就OK了,把file_paths文件与gdt_file_path,两个文件的内容合并成一个就OK。具体操作步骤就不详细说了,贴一下示例代码



   
    
    
    
   
    

      合并完成之后,自己重新声明一个新的file文件即可,如下图所示:


   ...

 
    
 
 ...

  针对这种方法呢,还有一个问题就是,有的时候三方库,没有提供FileProvider的配置文件,那这个时候需要我们自己去三方库的源码里翻一下,都是同样的路径在xml下边,找到之后做一下兼容即可。

       上面那种方法比较常用,还有一种办法就是,自定义FileProvider,不直接用系统指定的,也可以解决该冲突,如代码所示

public class MyFileProvider extends FileProvider{
}

      继承之后也不需要处理什么东西,在配置文件改一下名字即可


    ...
 
  
     
  
 
  
     
   
   ...

 好了以上就是处理FileProvider的两种建议办法,当然还有其它的办法,像直接修改三方库的源码,都行,选则合适自己项目需求的就好。

你可能感兴趣的:(bug填坑)