【发布时间】:2018-09-01 11:48:07
【问题描述】:
我正在使用React Native FBSDK 在我的 React Native 应用程序中处理 Facebook 身份验证。我想使用自己的加载微调器,但是LoginManager.logInWithReadPermissions() 似乎已经包含了加载微调器。有什么方法可以禁用它吗?
相关问题似乎涉及在 AndroidManifest 中的 activity 标签上设置 android:theme="@android:style/Theme.NoDisplay"。 React Native FBSDK 让我包括:
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id" />
在 AndroidManifest 中。我认为将android:theme 属性附加到此标签是没有意义的(我已经尝试过,但没有达到预期的结果)。
我已尝试添加以下activity 标签:
<activity android:name="com.facebook.FacebookAcitivity" android:theme="@android:style/Theme.NoDisplay" tools:replace="android:theme" />
到我的Android Manifest,除了添加以下属性:
xmlns:tools="http://schemas.android.com/tools"
到我的manifest 标签。这会导致应用程序在单击调用LoginManager.logInWithReadPermissions() 的按钮时立即崩溃。
当我运行adb logcat 时,堆栈跟踪中出现以下错误消息:
AndroidRuntime: java.lang.IllegalStateException: Activity {com.<my-company-name>.<my-project-name>/com.facebook.FacebookActivity} did not call finish() prior to onResume() completing
将我传递给android:theme 的值更改为@android:style/Theme.Translucent.NoTitleBar 可以防止我的应用程序崩溃。它还会更改加载图标的样式,但不会隐藏它。
【问题讨论】:
-
在您的
AndroidManifest中应该还有一个带有android:name="com.facebook.FacebookActivity"的activity标签。您是否尝试添加您在那里提到的主题属性?您不需要在所有activity标签上使用它,仅此而已。 -
activity标签不存在(我相信 FBSDK 会处理这个问题)。我试过添加这个,但遇到了进一步的问题。我已经更新了我的问题以指定我尝试过的内容。 -
您运行
react-native install react-native-fbsdk和react-native link react-native-fbsdk了吗?我之前使用过 RN FBSDK,标签在我的清单中。也许这不再是它的工作方式了 -
我确实做到了。我按照 RN FBSDK GitHub 页面上指定的安装说明进行操作。
-
我已经设法将问题隔离到使用
Theme.NoDisplay,并在问题中添加了更多细节以反映这一点。
标签: android react-native react-native-fbsdk