Facebook Unity SDK登录速度非常慢,有时会崩溃

时间:2014-11-14 09:12:34

标签: android unity3d facebook-unity-sdk

我注意到6.1的这个问题,但在降级到6.0之后它仍然存在。

在某些Android设备上,Facebook登录窗口需要很长时间才能显示。加载图标间歇显示,然后Facebook窗口最终显示,或者游戏崩溃。

问题不一致,但我认为有时它会在尝试显示Facebook窗口时崩溃,有时在返回游戏时会崩溃。

这是我的一位测试人员的崩溃报告:

  

java.lang.Error:FATAL EXCEPTION [main] Unity版本:4.6.0b21   设备型号:motorola XT1032设备指纹:   摩托罗拉/ falcon_retgb / falcon_umts:4.4.4 / KXB21.14-L1.40 / 36:用户/释放密钥

     

引起:java.lang.RuntimeException:传递结果失败   ResultInfo {who = null,request = 64206,result = -1,data = Intent {(has   额外的)}}到活动   {com.companyname.gamename / com.facebook.unity.FBUnityLoginActivity}:   java.lang.NullPointerException:尝试调用虚方法   ' boolean com.facebook.Session.onActivityResult(android.app.Activity,   int,int,android.content.Intent)'在null对象引用   android.app.ActivityThread.deliverResults(ActivityThread.java:3432)at   android.app.ActivityThread.handleSendResult(ActivityThread.java:3475)   在android.app.ActivityThread.access $ 1300(ActivityThread.java:139)at   android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1258)   在android.os.Handler.dispatchMessage(Handler.java:102)at   android.os.Looper.loop(Looper.java:136)at   android.app.ActivityThread.main(ActivityThread.java:5086)at   java.lang.reflect.Method.invoke(Native Method)at   com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:785)   在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)引起   by:java.lang.NullPointerException:尝试调用虚方法   ' boolean com.facebook.Session.onActivityResult(android.app.Activity,   int,int,android.content.Intent)'在null对象引用   com.facebook.unity.FBLogin.onActivityResult(FBLogin.java:245)at at   com.facebook.unity.FBUnityLoginActivity.onActivityResult(FBUnityLoginActivity.java:25)   在android.app.Activity.dispatchActivityResult(Activity.java:5446)处   android.app.ActivityThread.deliverResults(ActivityThread.java:3428)   ... 9更多

这是我的设备登录崩溃时的logcat警告和错误:

pastebin

P.S。抱歉,这个问题看起来像是一个错误报告,而不是一个问题。 Facebook已经要求用户通过Stack Overflow报告反馈和错误。

1 个答案:

答案 0 :(得分:0)

我弄清楚造成这个问题的原因。虽然我不确定我所做的是不正确,还是有错误。

我通过引用我的MonoBehaviour实例和方法来传递回调方法。似乎对回调的引用有时会以这种方式丢失。如果我只是传递对方法的引用,它就可以正常工作。

// instance is a reference to this instance of monobehaviour

// this sometimes crashes
public static void TryFBLogin() {
    if (instance != null && FB.IsInitialized) {
        FB.Login("public_profile,user_friends", instance.OnFBLoginAttempted);
    }
}

// this works
public void TryFacebookLogin() {
    if (FB.IsInitialized) {
        FB.Login("public_profile,user_friends", OnFBLoginAttempted);
    }
}
相关问题