在module中獲取或創(chuàng)建Android7.0以上的uri試裕寨,我們要在module的AndroidManifest.xml文件中配置FileProvider扣泊,如:
如果主項目中沒有配置provider,則程序可以正常運行看成,如果主項目中也存在provider配置,就會出現(xiàn)沖突:
manifest沖突
看到這個沖突治力,我的第一反應(yīng)是去搜索“Manifest merger failed with multiple errors”關(guān)鍵字碱鳞,搜出來的,搜出來的答案一般是讓你在module的AndroidManifest中配置tools,如下
這種方法我試了加入icon,theme,authorities等標(biāo)簽都無效麻昼,只能通過其他途徑解決奠支,目前發(fā)現(xiàn)兩種解決方案,一種是自定義FileProvider配置到module的AndroidManifest中抚芦,另一種是在module的provider標(biāo)簽下配置tools:replace而不是在application標(biāo)簽下配置
1.在provider標(biāo)簽下配置tools:replace(SDK>=28)
tools:replace="android:authorities"
這種方法有個局限性倍谜,SDK要大于或等于28才生效
2.自定義FileProvider類
自定義一個類繼承FileProvider類,然后配置到module的AndroidManifest中
自定義類繼承
FileProvider
最后問題就解決了