一、 报错信息

出错场景 : 需要安装两个相同的 APP 进行对比测试 ;

对工程进行了如下修改 :

  • 应用标识 : 修改了 build.gradle 中的 applicationId ;
  • 清单文件包名 : 清单文件 AndroidManifest.xml 中 manifest 根节点下的 package 包名 ,
  • 清单文件组件路径 : AndroidManifest.xml 中所有注册组件都使用全路径名称 ;
  • 代码中的资源路径 : 对应的 包名.R 需要更新成 新的包名.R ;
  • 代码中的应用配置 : 对应的 包名.BuildConfig 需要更新成 新报名.BuildConfig ;

应用编译完成后 , 安装过程中报了如下错误 :

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:\002_Project\001_Android_Work\XXX\build\outputs\apk\debug\app-debug.apk'
Installation failed due to: 'null'
Retry

【错误记录】Android 应用安装报错 ( The application could not be installed: INSTALL_FAILED_CONFLICTING_PROVIDER )_android







二、 解决方案

在清单文件 AndroidManifest.xml 中将 Application , Activity , Service 等路径修改成了全路径 包名.类名 , 这里漏掉了 provider , 配置了一个 FileProvider 用于访问 SD 卡中的文件 ;

        <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 文件中对应的包名 , 也要进行相应修改 ;