解决FileProvider引入冲突问题
2019-10-23 本文已影响0人
海本默
在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最后问题就解决了