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

问题描述 投票:7回答:3

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

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

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

android facebook android-contentprovider android-facebook android-productflavors
3个回答
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}"/>

摇篮

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"]
    }
}

-1
投票

你可以用这个:

表现

<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


-7
投票
<provider android:authorities="com.facebook.app.FacebookContentProvider{app id here}"
            android:name="com.facebook.FacebookContentProvider"
            android:exported="true"/>
© www.soinside.com 2019 - 2024. All rights reserved.