首页 > 解决方案 > 在 Android 上 React Native Facebook SDK 初始化

问题描述

我正在将 Faecbook SDK 集成到现有的 react-native 项目中,并且出现了可怕的错误: The SDK has not been initialized, make sure to call FacebookSdk.sdkInitialize() first.

我已仔细按照说明进行操作,因此 strings.xml 包含:

<string name="facebook_app_id">xxxxx</string>

在 AndroidManifest.xml 的应用程序元素中,我有

<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>

我已经按照描述对 settings.gradle 和 build.xml 进行了更改。

FacebookSdk.sdkInitialize()所有的说明都说如果我完成了上述操作,我不需要打电话。我正在使用 react-native-fbsdk 版本 1.1.1 和 react native 0.60.5

当我按照一个简单的新 react-native 项目的说明进行操作时,它可以工作,所以我想知道它是否与应用程序中的某些内容发生冲突,但我不确定要寻找什么。谁能建议如何调试?

谢谢。

标签: androidreact-nativefbsdkreact-native-fbsdk

解决方案


万一它对其他人有帮助,我通过创建一个带有 fbsdk 集成的 vanilla react-native 应用程序并煞费苦心地从我的真实应用程序复制配置直到 facebook 集成停止工作,从而找到了罪魁祸首。

事实证明,tools:node="replace"从 AndroidManifest.xml 中的应用程序元素中删除解决了这个问题。

<application
 ...
 tools:node="replace">

(我不确定为什么要添加这个属性,添加它的开发人员的 git commit 消息很神秘,没有它,应用程序似乎仍然可以工作......)


推荐阅读