解决 INSTALL FAILED CONFLICTING PROVIDER

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>

原文地址:https://www.cnblogs.com/weizhxa/p/11895953.html