1、现象:

解决 INSTALL FAILED CONFLICTING PROVIDER-LMLPHP

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>

05-24 19:42