1、现象:
2、产生原因
INSTALL FAILED CONFLICTING PROVIDER 产生的原因通常是因为系统中已经安装的apk的provider中的authorities相同了,导致在安装到手机时,安装包管理器检测到相同的provider,报错导致的。
如下处:
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.xx.xxx.fileprovider"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
红处冲突
3、解决方法
知道了原因,我们只需要将provider的authorities改为不一样的即可。通常的做法是使用applicationId作为前缀,applicationId通常为包名。
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
4、疑难:当我们解决了这个问题时,还是报这个冲突怎么办?我们还需要查找我们的依赖包中是否有此处的冲突,依赖包重点检查具有AndroidManifest.xml中的provider节点的authorities。例如aar资源。
如果此依赖可以修改源码,直接修改源码;通常aar使用解压软件直接更改即可。
5、参考依据
<a href='https://blog.csdn.net/sinat_29235897/article/details/53432982'>https://blog.csdn.net/sinat_29235897/article/details/53432982</a>
<a href='https://www.jb51.net/article/105274.htm'>https://www.jb51.net/article/105274.htm</a>