我正在构建一个包含多个productFlavors
的Android应用程序,并使用Facebook SDK v4.1进行登录和共享内容。问题是,当我尝试在已经安装了相同应用程序(但风格不同)的设备上安装应用程序时,会引发错误。它不允许我安装第二个应用程序,除非我卸载现有的应用程序。
<provider android:authorities="com.facebook.app.FacebookContentProvider{my_app_id}"
android:name="com.facebook.FacebookContentProvider"
android:exported="true"/>
根据这个document,android:authorities
应该是独一无二的,我应该有多个auths来完成我想做的事情。但是,我不能拥有多个Facebook AppIds,并且想知道是否有更好的方法来解决这个问题。在此先感谢能帮助我的人!
试试以下: 表现
<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}"/>
摇篮
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"]
}
}
你可以用这个:
表现
<provider android:authorities="@string/facebook_app_authority"
android:name="com.facebook.FacebookContentProvider"
android:exported="true" />
摇篮
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"
}
}
将0000000000000000替换为您的App id
<provider android:authorities="com.facebook.app.FacebookContentProvider{app id here}"
android:name="com.facebook.FacebookContentProvider"
android:exported="true"/>