I'm building an Android app with multiple productFlavors
, and using Facebook SDK v4.1 for login and sharing contents. The problem is that when I try to install an app on a device which already has the same app installed (but different flavor), it raises an error. It doesn't allow me to install the second app unless I uninstall the existing one.
<provider android:authorities="com.facebook.app.FacebookContentProvider{my_app_id}"
android:name="com.facebook.FacebookContentProvider"
android:exported="true"/>
According to this document, the android:authorities
should be unique and I should have multiple auths to accomplish what I want to do. However, I can't have multiple Facebook AppIds, and was wondering if there's better way to solve this problem. Thanks in advance to anyone who can help me!
Try below :
Manifest
<provider android:authorities="com.facebook.app.FacebookContentProvider${facebookId}"
android:name="com.facebook.FacebookContentProvider"
android:exported="true" />
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="fb${facebookId}"/>
Gradle
android {
compileSdkVersion 25
buildToolsVersion "25.0.1"
defaultConfig {
applicationId "com.your.package"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
manifestPlaceholders = [facebookId:"123456789"]
}
productFlavors {
debug {
applicationIdSuffix ".debug"
manifestPlaceholders = [facebookId:"1234"]
}
release {
applicationIdSuffix ".pro"
manifestPlaceholders = [facebookId:"123456789"]
}
}
You can use this:
Manifest
<provider android:authorities="@string/facebook_app_authority"
android:name="com.facebook.FacebookContentProvider"
android:exported="true" />
Gradle
productFlavors {
flavor1 {
applicationId "com.id.flavor1"
versionCode 1
versionName "1.0.0"
resValue "string", "facebook_app_authority", "com.facebook.app.FacebookContentProvider0000000000000000"
}
flavor2 {
applicationId "com.id.flavor2"
versionCode 1
versionName "1.0.0"
resValue "string", "facebook_app_authority", "com.facebook.app.FacebookContentProvider0000000000000001"
}
}
Replace 0000000000000000 to your App id
<provider android:authorities="com.facebook.app.FacebookContentProvider{app id here}"
android:name="com.facebook.FacebookContentProvider"
android:exported="true"/>