必须在 AndroidManifest.xml 中设置有效的 Facebook 应用程序 ID

2024-02-19

我正在尝试使用 React Native 和 fbsdk 包装器在 Android 上设置 fbsdkhttps://github.com/facebook/react-native-fbsdk https://github.com/facebook/react-native-fbsdk。我在 iOS 上可以使用,但在 Android 上却卡住了。我按照 github 自述文件执行了所有步骤。

主应用程序.java

@Override
  public void onCreate() {
    super.onCreate();
    FacebookSdk.sdkInitialize(getApplicationContext());
    SoLoader.init(this, /* native exopackage */ false);
  }

字符串.xml

<resources>
    <string name="app_name">FacebookLogin</string>
    <string name="facebook_app_id">1343643482425305</string>
    <string name="fb_login_protocol_scheme">fb1343643482425305</string>
</resources>

AndroidManifest.xml

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

但我从 LogCat 收到此错误

11-22 06:57:13.236 7570-7570/? I/zygote: Not late-enabling -Xcheck:jni (already on)
11-22 06:57:13.244 7570-7570/? W/zygote: Unexpected CPU variant for X86 using defaults: x86
11-22 06:57:13.361 7570-7570/com.facebooklogin I/FacebookInitProvider: Failed to auto initialize the Facebook SDK
                                                                       A valid Facebook app id must be set in the AndroidManifest.xml or set by calling FacebookSdk.setApplicationId before initializing the sdk.
                                                                           at com.facebook.FacebookSdk.sdkInitialize(FacebookSdk.java:276)
                                                                           at com.facebook.FacebookSdk.sdkInitialize(FacebookSdk.java:232)
                                                                           at com.facebook.internal.FacebookInitProvider.onCreate(FacebookInitProvider.java:20)
                                                                           at android.content.ContentProvider.attachInfo(ContentProvider.java:1919)
                                                                           at android.content.ContentProvider.attachInfo(ContentProvider.java:1894)
                                                                           at android.app.ActivityThread.installProvider(ActivityThread.java:6285)
                                                                           at android.app.ActivityThread.installContentProviders(ActivityThread.java:5851)
                                                                           at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5772)
                                                                           at android.app.ActivityThread.-wrap1(Unknown Source:0)
                                                                           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1661)
                                                                           at android.os.Handler.dispatchMessage(Handler.java:105)
                                                                           at android.os.Looper.loop(Looper.java:164)
                                                                           at android.app.ActivityThread.main(ActivityThread.java:6541)
                                                                           at java.lang.reflect.Method.invoke(Native Method)
                                                                           at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                                                                           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
11-22 06:57:13.364 7570-7570/com.facebooklogin D/AndroidRuntime: Shutting down VM
11-22 06:57:13.365 7570-7570/com.facebooklogin E/AndroidRuntime: FATAL EXCEPTION: main
                                                                 Process: com.facebooklogin, PID: 7570
                                                                 java.lang.RuntimeException: Unable to create application com.facebooklogin.MainApplication: A valid Facebook app id must be set in the AndroidManifest.xml or set by calling FacebookSdk.setApplicationId before initializing the sdk.
                                                                     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5794)
                                                                     at android.app.ActivityThread.-wrap1(Unknown Source:0)
                                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1661)
                                                                     at android.os.Handler.dispatchMessage(Handler.java:105)
                                                                     at android.os.Looper.loop(Looper.java:164)
                                                                     at android.app.ActivityThread.main(ActivityThread.java:6541)
                                                                     at java.lang.reflect.Method.invoke(Native Method)
                                                                     at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
                                                                  Caused by: A valid Facebook app id must be set in the AndroidManifest.xml or set by calling FacebookSdk.setApplicationId before initializing the sdk.
                                                                     at com.facebook.FacebookSdk.sdkInitialize(FacebookSdk.java:276)
                                                                     at com.facebook.FacebookSdk.sdkInitialize(FacebookSdk.java:232)
                                                                     at com.facebooklogin.MainApplication.onCreate(MainApplication.java:53)
                                                                     at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1118)
                                                                     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5791)
                                                                     at android.app.ActivityThread.-wrap1(Unknown Source:0) 
                                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1661) 
                                                                     at android.os.Handler.dispatchMessage(Handler.java:105) 
                                                                     at android.os.Looper.loop(Looper.java:164) 
                                                                     at android.app.ActivityThread.main(ActivityThread.java:6541) 
                                                                     at java.lang.reflect.Method.invoke(Native Method) 
                                                                     at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
                                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 

在我的例子中,元数据位于应用程序范围之外。通常,它应该位于您的清单中,如下所示:

<application>
      ...
      <meta-data
                android:name="com.facebook.sdk.ApplicationId"
                android:value="@string/facebook_app_id" />
    </application>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

必须在 AndroidManifest.xml 中设置有效的 Facebook 应用程序 ID 的相关文章

随机推荐