我有以下结构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" />
但是当尝试安装另一个版本时,free会出现INSTALL_FAILED_CONFLICTING_PROVIDER错误。如何解决此冲突,因为所有版本都使用相同的Facebook ID?
答案 0 :(得分:0)
如果您想在同一设备中安装不同的应用,请确保其中没有相同的提供商(权限),或者您应该卸载第一个
答案 1 :(得分:0)
我设法解决了这个冲突。 例如,在免费构建中,我使用以下格式创建了一个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中创建更多应用程序,每个构建一个。