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
我已经设置了与以下内容共享的 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