文章目录
- 一、 报错信息
- 二、 解决方案
一、 报错信息
出错场景 : 需要安装两个相同的 APP 进行对比测试 ;
对工程进行了如下修改 :
- 应用标识 : 修改了 build.gradle 中的 applicationId ;
- 清单文件包名 : 清单文件 AndroidManifest.xml 中 manifest 根节点下的 package 包名 ,
- 清单文件组件路径 : AndroidManifest.xml 中所有注册组件都使用全路径名称 ;
- 代码中的资源路径 : 对应的 包名.R 需要更新成 新的包名.R ;
- 代码中的应用配置 : 对应的 包名.BuildConfig 需要更新成 新报名.BuildConfig ;
应用编译完成后 , 安装过程中报了如下错误 :
代码语言:javascript复制03/09 15:41:11: Launching 'XXX' on Google Pixel 2.
Installation did not succeed.
The application could not be installed: INSTALL_FAILED_CONFLICTING_PROVIDER
List of apks:
[0] 'D: 02_Project 01_Android_WorkXXXbuildoutputsapkdebugapp-debug.apk'
Installation failed due to: 'null'
Retry
二、 解决方案
在清单文件 AndroidManifest.xml 中将 Application , Activity , Service 等路径修改成了全路径 包名.类名 , 这里漏掉了 provider , 配置了一个 FileProvider 用于访问 SD 卡中的文件 ;
代码语言:javascript复制 <provider
android:name="android.support.v4.content.FileProvider"
android:authorities="xxx.fileProvider"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
将上述 provider 中的 android:authorities , 修改成 新的包名.fileProvider ;
对应的 file_paths 中的 xml 文件中对应的包名 , 也要进行相应修改 ;