完美解决主工程与lib库的provider冲突
来源:互联网 发布:飞书互动 知乎 编辑:程序博客网 时间:2024/05/17 23:02
1.问题
在android系统6.0以上的系统对权限的管理越来越严格了,特别是存储权限,需要通过FileProvider来读写文件,或许很多朋友像我一样都遇到过主工程与lib库的provider冲突,导致工程无法编译,错误信息如下:
2.原因分析
在主工程manifest文件中引用了FileProvider:
同样在lib库的manifest文件中也引用了FileProvider:
编译器在编译工程合并manifest文件时候就抛出了provider冲突问题,显而易见是其中的authrities冲突了。
在as的log日志里和在网上查找资料都是说在主工程的manifest文件里的provider下加上tools:replace就能成功解决问题。加上后,看似确实编译通过了,但是在主工程或者lib库用到FileProvider读写文件的时候还是报错了,各种修改manifest文件也没能解决这个问题。
3.解决方法
其实一想,我们在应用中用的都是v4包提供的FileProvider类来读写文件的,从而导致冲突,如果我们自己在工程中新写个FileProvider类继承自系统的FileProvider类来读写文件不就问题解决了么?带着这个想法一试,果然成功了。皇天不负有心人呐!下面是所有的代码片段:
上面这种做法有种好处就是不用将lib库下载下来然后修改lib库里的provider了,lib库里还是可以用原来的provider。
到此就结束了,如果你觉得这篇文章对你有用,那么赞一个或者留个言吧~
阅读全文
7 0
- 完美解决主工程与lib库的provider冲突
- 完美解决主工程与lib库的FileProvider冲突
- 完美解决Ecshop2.72与Jquery冲突的办法
- 完美解决ScrollView与内部嵌套的TextView滚动冲突
- 完美解决ScrollView与内部嵌套的TextView滚动冲突
- 完美解决ScrollView与ListView冲突问题(ListView与ListView的冲突)
- Android provider冲突问题,ImagePick的provider与自己的provider冲突
- 完美解决SwipeRefreshLayout与WebView冲突
- 完美解决 SlidingMenu appcompat_7的冲突问题
- LIBCMTD.lib与libcpmtd冲突的解决方法。
- LIBCMTD.lib与libcpmtd冲突的解决方法。
- android Lib工程无法clean的解决
- 最新超简单仅5步完美解决ECSHOP与JQUERY冲突的办法
- 最新超简单仅5步完美解决ECshop与JQuery冲突的办法 三
- 简单5步完美解决Ecshop与jQuery冲突的问题
- 完美解决WebView与上层父元素的TouchMove事件冲突
- 完美解决WebView与上层父元素的TouchMove事件冲突
- LIBCMT.lib与msvcrtd.lib冲突的链接错误
- LeetCode 62 Unique Paths
- apk下载安装
- Android就业面试技巧系列-技术篇1(内存优化)
- 125.关于iPhone像素和各机型显示的探究
- jvm gc日志分析
- 完美解决主工程与lib库的provider冲突
- java的反射机制原理
- 原创短视频的美好时代,美拍连出两招加速达人变现
- 关于Service,你要知道的一些知识
- JVM内存区域划分Eden Space、Survivor Space、Tenured Gen,Perm Gen解释
- unity运行之自动暂停——作死
- 高斯低通高通函数
- ScrollView嵌套recyclerView问题
- luogu2461递归数列