【问题标题】:Android Facebook ContentProvider and multiple Build TypesAndroid Facebook ContentProvider 和多种构建类型
【发布时间】:2016-05-11 16:51:52
【问题描述】:

我已设置 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?

【问题讨论】:

  • Here 是您正在寻找的解决方案。
  • @Wess 检查我的答案。

标签: android android-contentprovider facebook-android-sdk sharing


【解决方案1】:

您的清单代码如下所示,用于 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" />

注意:

您的应用目前上线并可供公众使用。

按照以下步骤让您的 Facebook 应用上线并公开:

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

2) 选择您的应用并转到应用审核标签。

3) 勾选YES 选择您的应用目前已上线并可供公众使用。 选项。

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

【讨论】:

  • 谢谢,为我工作,已经花了几个小时解决这个问题
【解决方案2】:

您的“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" />

【讨论】:

    【解决方案3】:

    试试这个:

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

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

    更多信息,您可以关注this链接。

    【讨论】:

      猜你喜欢
      • 2015-05-15
      • 1970-01-01
      • 2011-07-24
      • 2010-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多