使用多个构建时发生错误 INSTALL_FAILED_CONFLICTING_PROVIDER

Using several builds error occurs INSTALL_FAILED_CONFLICTING_PROVIDER

我有以下结构gradle:

productFlavors {
        main {
            applicationId = "com.mayapp.main"
            minSdkVersion 16
            targetSdkVersion 23
            versionCode 5
            versionName '2.0'
        }
        free {
            applicationId = "com.mayapp.free"
            minSdkVersion 16
            targetSdkVersion 23
            versionCode 5
            versionName '2.0'
        }
        full {
            applicationId = "com.mayapp.full"
            minSdkVersion 16
            targetSdkVersion 23
            versionCode 5
            versionName '2.0'
        }
}

在主构建中拥有唯一的清单文件,它是 Facebook 的提供者。

<provider android:authorities="com.facebook.app.FacebookContentProvider1234"
          android:name="com.facebook.FacebookContentProvider"
          android:exported="true" />

但是当尝试安装另一个版本时,例如免费版会出现 INSTALL_FAILED_CONFLICTING_PROVIDER 错误。由于所有构建都使用相同的 Facebook ID,我该如何解决此冲突?

如果你想在同一台设备上安装不同的应用程序,请确保它们中没有相同的提供者(权限),否则你应该卸载第一个

我设法解决了这个冲突。 例如,在免费构建中,我创建了一个 AndroidManifest.xml,格式如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mayapp.free"
    xmlns:tools="http://schemas.android.com/tools">

...
<meta-data android:name="com.facebook.sdk.ApplicationId"
            tools:replace="android:value"
            android:value="@string/facebook_app_id"/>

        <provider android:authorities="com.facebook.app.FacebookContentProvider0123456789"
            android:name="com.facebook.FacebookContentProvider"
            tools:replace="android:authorities"
            android:exported="true"/>

这样解决了我的矛盾。 细节,必须在门户网站 Facebook 中创建更多应用程序,每个构建一个。