解决FileProvider引入冲突问题

在module中获取或创建Android7.0以上的uri试,我们要在module的AndroidManifest.xml文件中配置FileProvider,如:


如果主项目中没有配置provider,则程序可以正常运行,如果主项目中也存在provider配置,就会出现冲突:


manifest冲突

看到这个冲突,我的第一反应是去搜索“Manifest merger failed with multiple errors”关键字,搜出来的,搜出来的答案一般是让你在module的AndroidManifest中配置tools,如下


这种方法我试了加入icon,theme,authorities等标签都无效,只能通过其他途径解决,目前发现两种解决方案,一种是自定义FileProvider配置到module的AndroidManifest中,另一种是在module的provider标签下配置tools:replace而不是在application标签下配置

1.在provider标签下配置tools:replace(SDK>=28)


tools:replace="android:authorities"

这种方法有个局限性,SDK要大于或等于28才生效

2.自定义FileProvider类

自定义一个类继承FileProvider类,然后配置到module的AndroidManifest中


自定义类继承 FileProvider


最后问题就解决了

你可能感兴趣的:(解决FileProvider引入冲突问题)