当我构建多个productFlavor时,使用Facebook SDK INSTALL_FAILED_CONFLICTING_PROVIDER

Nar*_*hin 7 android facebook android-contentprovider android-facebook android-productflavors

我正在构建一个包含多个Android应用程序productFlavors,并使用Facebook SDK v4.1进行登录和共享内容.问题是,当我尝试在已经安装了相同应用程序(但风格不同)的设备上安装应用程序时,会引发错误.它不允许我安装第二个应用程序,除非我卸载现有的应用程序.

<provider android:authorities="com.facebook.app.FacebookContentProvider{my_app_id}"
        android:name="com.facebook.FacebookContentProvider"
        android:exported="true"/>
Run Code Online (Sandbox Code Playgroud)

根据这个文件,它android:authorities应该是唯一的,我应该有多个auths来完成我想做的事情.但是,我不能拥有多个Facebook AppIds,并且想知道是否有更好的方法来解决这个问题.在此先感谢能帮助我的人!

Jae*_*Kim 6

请尝试以下:

清单

<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}"/>
Run Code Online (Sandbox Code Playgroud)

摇篮

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"]
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 很好的答案,一个问题,为什么你需要在fb $ {facebookId}之前使用"fb"? (2认同)
  • 什么伎俩!在 ${facebookId} 应用程序崩溃并显示“无效的应用程序 ID”消息之前没有 'fb',我认为它被转换为数字,并且添加前缀 'fb' 可以防止这种情况吗? (2认同)

小智 -7

<provider android:authorities="com.facebook.app.FacebookContentProvider{app id here}"
            android:name="com.facebook.FacebookContentProvider"
            android:exported="true"/>
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

3330 次

最近记录:

6 年,6 月 前