适用于Unity的Facebook Android SDK:Facebook对象尚未加载。你有没有打电话给FB.Init()?

时间:2014-03-14 00:14:46

标签: facebook-unity-sdk

使用Facebook的Unity插件(v5.0.3)在Android上运行Unity游戏。 Facebook登录已经为大多数用户提供了一段时间的正常工作。 虽然最近我们收到了Crittercism的以下崩溃报告。 好奇,如果有其他人经历过这个并有一些提示吗?

我们非常确定我们在C夏普代码中正确调用FB.Init() - 使用Android监视工具跟踪流程以查看日志。

与此同时,我们添加了更多日志记录以尝试获取更多信息。

谢谢!

Stack Trace
_________________________________
0   java.lang.Exception: NullReferenceException: Facebook object is not yet loaded.  Did you call FB.Init()?
1       at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
2       at com.unity3d.player.UnityPlayer.a(Unknown Source)
3       at com.unity3d.player.UnityPlayer$a.run(Unknown Source)
4   Caused by: java.lang.Throwable: FB.get_FacebookImpl ()
5   FB.Login (System.String scope, Facebook.FacebookDelegate callback)
6   Zynga.Casino.Auth.FacebookUser.OnInitComplete ()
7   Zynga.Casino.Auth.FacebookUser.LogIn ()
8   Zynga.Poker.Auth.Unity.FacebookLogin.LogInFacebookUser ()
9   Zynga.Poker.Auth.Unity.FacebookLogin.OnPress (Boolean isDown)
10  UnityEngine.GameObject:SendMessage(String, Object, SendMessageOptions)
11  UICamera:Notify(GameObject, String, Object)
12  UICamera:ProcessTouch(Boolean, Boolean)
13  UICamera:ProcessTouches()
14  UICamera:Update()
15  
16      ... 3 more
17  java.lang.Throwable: FB.get_FacebookImpl () 
18  FB.Login (System.String scope, Facebook.FacebookDelegate callback)
19  Zynga.Casino.Auth.FacebookUser.OnInitComplete ()
20  Zynga.Casino.Auth.FacebookUser.LogIn ()
21  Zynga.Poker.Auth.Unity.FacebookLogin.LogInFacebookUser ()
22  Zynga.Poker.Auth.Unity.FacebookLogin.OnPress (Boolean isDown)
23  UnityEngine.GameObject:SendMessage(String, Object, SendMessageOptions)
24  UICamera:Notify(GameObject, String, Object)
25  UICamera:ProcessTouch(Boolean, Boolean)
26  UICamera:ProcessTouches()
27  UICamera:Update()
28  
29      at com.unity3d.player.UnityPlayer.nativeRender(Native Method)
30      at com.unity3d.player.UnityPlayer.a(Unknown Source)
31      at com.unity3d.player.UnityPlayer$a.run(Unknown Source)

1 个答案:

答案 0 :(得分:0)

我知道我迟到了 7 年,但希望这对某人有所帮助

我在我们的应用中遇到了类似的问题。我们使用的是处理 Facebook 初始化的内部 SDK。在加载新场景之前,我通过显式等待 FB 初始化在协程中完成来解决该问题。

FB.Init() 调用是异步的。我的假设是,如果在 init 完成之前场景发生了变化,它会保持未初始化状态。由于我们的内部 SDK,我无法修改 onInitComplete 回调,所以这是我能做的最好的黑客修复。

IEnumerator LoadMenuSceneRoutine()
{
    while (!FB.IsInitialized)
    {
        yield return null;
    }
    LoadMenuScene();
}