Android Facebook ContentProvider 和多种构建类型

Android Facebook ContentProvider and multiple Build Types

我已经设置了与以下内容共享的 Facebook,构建类型特定的内容提供商:

<provider
        android:name="com.facebook.FacebookContentProvider"
        android:authorities="com.facebook.app.FacebookContentProviderXXX${applicationId} ...

applicationId 因构建类型而异,因此我能够 运行 在一台设备上并排调试和实时构建。

此设置让我在 Facebook(图像文件)共享上出错:

IllegalStateException: A ContentProvider for this app was not set up in the AndroidManifest.xml, please add com.facebook.app.FacebookContentProviderXXX as a provider to your AndroidManifest.xml file. See https://developers.facebook.com/docs/sharing/android for more info.

我该如何克服这个问题?如何让 Facebook 考虑我的 applicationId?

试试这个:

如果你的 APP_ID 是 95xxx3xx60xx73xx,那么它应该是这样的:

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

更多信息可以关注thislink.

您的“applicationId”可能是 "com.myname.blabla",XXX 您的 Facebook 应用程序 ID?

我认为您应该改用 2 个 facebook APP_ID,而不是 "applicationId"。将 facebook APP_ID 放入您的构建类型中,并在您的清单中引用它们。然后,您不需要从您的应用中添加 "applicationId"。

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

您的清单代码如下所示,用于 facebook 登录和分享:

    <meta-data
        android:name="com.facebook.sdk.ApplicationId"
        android:value="@string/{facebook_app_id}" />
    <!-- To use Facebook Login or Share, also add the FacebookActivity to the manifest:-->
    <activity
        android:name="com.facebook.FacebookActivity"
        android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" />
    <!-- If you're sharing links, images or video via the Facebook for Android app, you also need to declare
    the FacebookContentProvider in the manifest. -->
    <provider
        android:name="com.facebook.FacebookContentProvider"
        android:authorities="com.facebook.app.FacebookContentProvider${facebook_app_id}"
        android:exported="true" />

注意:

您的应用目前 上线 并且可供 public.

使用

按照以下步骤使您的 Facebook 应用上线并且 public:

1) 转到 https://developers.facebook.com/

2) Select 您的应用并转到 应用评论 选项卡。

3) 检查 YES 您的应用程序当前已上线并可供 public 使用。 选项。

I am new How do I make my app live on FB