在第二次登录Facebook的统一SDK 6.0崩溃的应用程序 [英] facebook unity sdk 6.0 crash app at second login

查看:446
本文介绍了在第二次登录Facebook的统一SDK 6.0崩溃的应用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

创建与Facebook的统一SDK 6.0中的一个简单的应用程序。

在启动功能调用init Facebook的。

有一个按钮调用登录和登录的回调只是输出字符串。

在三星galaxy运行S5采用Android 4.4.2。

期(100%可重复):

  1。第一次点击登录按钮,让Facebook的登录屏幕。
 2.点击退出按钮,返回到应用程序。
 3.点击登录按钮再次,应用程序崩溃。
 

崩溃转储:

  W / dalvikvm(16020):主题ID = 1:螺纹退出与未捕获的异常(组= 0x417f3da0)
V / SmartFaceService  - 第三方暂停(704):的onReceive [android.intent.action.ACTIVITY_STATE / com.xxxxx.testfacebook /创建]
的I / SpenGestureManager(704):setFocusWindow21055
D / PointerIcon(704):setMouseIconStyle1 pointerType:1001iconType:101标志:0
D / PointerIcon(704):setMouseCustomIcon IconType是same.101
D / PointerIcon(704):setHoveringSpenIconStyle1 pointerType:10001iconType:1的标志:0
D / PointerIcon(704):setHoveringSpenCustomIcon IconType是same.1
E / AndroidRuntime(16020):致命异常:主要
E / AndroidRuntime(16020):工艺:com.xxxxx.testfacebook,PID:16020
E / AndroidRuntime(16020):java.lang.Error:致命异常[主]
E / AndroidRuntime(16020):统一版本:4.5.3f3
E / AndroidRuntime(16020):设备型号:三星-SM-G900A
E / AndroidRuntime(16020):设备指纹识别:三星/ klteuc / klteatt:4.4.2 / KOT49H / G900AUCU1ANCE:用户/释放键
E / AndroidRuntime(16020):
E / AndroidRuntime(16020):java.lang.RuntimeException的:产生的原因无法启动活动ComponentInfo {com.xxxxx.testfacebook / com.facebook.unity.FBUnityLoginActivity}:java.lang.UnsupportedOperationException:会话:一个试图打开一个已经打开的会话。
E / AndroidRuntime(16020):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2328)
E / AndroidRuntime(16020):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2386)
E / AndroidRuntime(16020):在android.app.ActivityThread.access $ 900(ActivityThread.java:169)
E / AndroidRuntime(16020):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1277)
E / AndroidRuntime(16020):在android.os.Handler.dispatchMessage(Handler.java:102)
E / AndroidRuntime(16020):在android.os.Looper.loop(Looper.java:136)
E / AndroidRuntime(16020):在android.app.ActivityThread.main(ActivityThread.java:5476)
E / AndroidRuntime(16020):在java.lang.reflect.Method.invokeNative(本机方法)
E / AndroidRuntime(16020):在java.lang.reflect.Method.invoke(Method.java:515)
E / AndroidRuntime(16020):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1268)
E / AndroidRuntime(16020):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
E / AndroidRuntime(16020):在dalvik.system.NativeStart.main(本机方法)
E / AndroidRuntime(16020):java.lang.UnsupportedOperationException:会话:产生的原因是试图打开一个已经打开的会话。
E / AndroidRuntime(16020):在com.facebook.Session.open(Session.java:1223)
E / AndroidRuntime(16020):在com.facebook.Session.openForPublish(Session.java:519)
E / AndroidRuntime(16020):在com.facebook.unity.FBLogin.sessionOpenRequest(FBLogin.java:113)
E / AndroidRuntime(16020):在com.facebook.unity.FBLogin.login(FBLogin.java:98)
E / AndroidRuntime(16020):在com.facebook.unity.FBUnityLoginActivity.onCreate(FBUnityLoginActivity.java:14)
E / AndroidRuntime(16020):在android.app.Activity.performCreate(Activity.java:5451)
E / AndroidRuntime(16020):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
E / AndroidRuntime(16020):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2292)
E / AndroidRuntime(16020):11 ...更多
W / ActivityManager(704):强制完成活动com.xxxxx.testfacebook / com.facebook.unity.FBUnityLoginActivity
I / SQLiteSecureOpenHelper(27856):getWritableDatabase(PWD)
I / SQLiteSecureOpenHelper(27856):getDatabaseLocked(B,B,PWD)...
W / ActivityManager(704):强制完成活动com.xxxxx.testfacebook / com.unity3d.player.UnityPlayerNativeActivity
V / SmartFaceService  - 第三方暂停(704):的onReceive [android.intent.action.ACTIVITY_STATE / com.xxxxx.testfacebook /暂停]
I / dumpstate(16164):开始
的I / SpenGestureManager(704):setFocusWindow0
D / EnterpriseDeviceManager(704):ContainerId:0
D / PointerIcon(704):setMouseIconStyle1 pointerType:1001iconType:101标志:0
D / PointerIcon(704):setMouseCustomIcon IconType是same.101
D / PointerIcon(704):setHoveringSpenIconStyle1 pointerType:10001iconType:1的标志:0
D / CrashAnrDetector(704):processName:com.xxxxx.testfacebook
D / PointerIcon(704):setHoveringSpenCustomIcon IconType是same.1
D / CrashAnrDetector(704):broadcastEvent:com.xxxxx.testfacebook data_app_crash
 

解决方案

提供了更持久的解决方案在这里我的其他帐户Helath:

http://answers.unity3d.com/questions/743523/facebook-sdk-cancelled-login-crash.html

展点,这是我做对其他网站的帖子:

他们基本上忘了刷新会话如果状态为登录失败与封闭。

如果你愿意,你可以从

导入Facebook的SDK到Eclipse和变线FBLogin.Java 63

 如果(SessionState.CLOSED.equals(session.getState())){
            会议=新生成器(FB.getUnityActivity())setApplicationId(session.getApplicationId())建立()。;
            Session.setActiveSession(会议);
        }
 

 如果(SessionState.CLOSED.equals(session.getState())|| SessionState.CLOSED_LOGIN_FAILED.equals(session.getState())){
                会议=新生成器(FB.getUnityActivity())setApplicationId(session.getApplicationId())建立()。;
                Session.setActiveSession(会议);
            }
 

然后将项目导出为一个罐子,只有其中的类文件,如classes.jar的插件/安卓/ Facebook的/ bin文件夹。

编辑:这可能是更容易,如果我上传我使用的是classes.jar ......在这里下载:的 http://speedy.sh/QPgUp/classes.jar ,并把它放在插件/安卓/ Facebook的/ bin文件夹。

编辑2:如果您仍然有这个问题,Facebook已经发布了修复10月20日2014年所以更新到最新的SDK,现在解决了问题。

Created a simple app with facebook unity sdk 6.0.

In start function call the init facebook.

There is a button call login and the login callback just output string.

Run on a Samsung galaxy s5 with android 4.4.2.

Issue (100% repeatable):

 1. First time click login button, get the facebook login screen.
 2. Click exit button, back to app.
 3. Click login button again, app crashed.

Crash dump:

W/dalvikvm(16020): threadid=1: thread exiting with uncaught exception (group=0x417f3da0)
V/SmartFaceService - 3rd party pause(  704): onReceive [android.intent.action.ACTIVITY_STATE/com.xxxxx.testfacebook/create]
I/SpenGestureManager(  704): setFocusWindow21055
D/PointerIcon(  704): setMouseIconStyle1 pointerType: 1001iconType:101 flag:0
D/PointerIcon(  704): setMouseCustomIcon IconType is same.101
D/PointerIcon(  704): setHoveringSpenIconStyle1 pointerType: 10001iconType:1 flag:0
D/PointerIcon(  704): setHoveringSpenCustomIcon IconType is same.1
E/AndroidRuntime(16020): FATAL EXCEPTION: main
E/AndroidRuntime(16020): Process: com.xxxxx.testfacebook, PID: 16020
E/AndroidRuntime(16020): java.lang.Error: FATAL EXCEPTION [main]
E/AndroidRuntime(16020): Unity version     : 4.5.3f3
E/AndroidRuntime(16020): Device model      : samsung SAMSUNG-SM-G900A
E/AndroidRuntime(16020): Device fingerprint: samsung/klteuc/klteatt:4.4.2/KOT49H/G900AUCU1ANCE:user/release-keys
E/AndroidRuntime(16020): 
E/AndroidRuntime(16020): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxxxx.testfacebook/com.facebook.unity.FBUnityLoginActivity}: java.lang.UnsupportedOperationException: Session: an attempt was made to open an already opened session.
E/AndroidRuntime(16020):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2328)
E/AndroidRuntime(16020):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2386)
E/AndroidRuntime(16020):    at android.app.ActivityThread.access$900(ActivityThread.java:169)
E/AndroidRuntime(16020):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1277)
E/AndroidRuntime(16020):    at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(16020):    at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime(16020):    at android.app.ActivityThread.main(ActivityThread.java:5476)
E/AndroidRuntime(16020):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(16020):    at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime(16020):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
E/AndroidRuntime(16020):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
E/AndroidRuntime(16020):    at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(16020): Caused by: java.lang.UnsupportedOperationException: Session: an attempt was made to open an already opened session.
E/AndroidRuntime(16020):    at com.facebook.Session.open(Session.java:1223)
E/AndroidRuntime(16020):    at com.facebook.Session.openForPublish(Session.java:519)
E/AndroidRuntime(16020):    at com.facebook.unity.FBLogin.sessionOpenRequest(FBLogin.java:113)
E/AndroidRuntime(16020):    at com.facebook.unity.FBLogin.login(FBLogin.java:98)
E/AndroidRuntime(16020):    at com.facebook.unity.FBUnityLoginActivity.onCreate(FBUnityLoginActivity.java:14)
E/AndroidRuntime(16020):    at android.app.Activity.performCreate(Activity.java:5451)
E/AndroidRuntime(16020):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
E/AndroidRuntime(16020):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2292)
E/AndroidRuntime(16020):    ... 11 more
W/ActivityManager(  704):   Force finishing activity com.xxxxx.testfacebook/com.facebook.unity.FBUnityLoginActivity
I/SQLiteSecureOpenHelper(27856): getWritableDatabase(pwd)
I/SQLiteSecureOpenHelper(27856): getDatabaseLocked(b,b,pwd)...
W/ActivityManager(  704):   Force finishing activity com.xxxxx.testfacebook/com.unity3d.player.UnityPlayerNativeActivity
V/SmartFaceService - 3rd party pause(  704): onReceive [android.intent.action.ACTIVITY_STATE/com.xxxxx.testfacebook/pause]
I/dumpstate(16164): begin
I/SpenGestureManager(  704): setFocusWindow0
D/EnterpriseDeviceManager(  704): ContainerId: 0
D/PointerIcon(  704): setMouseIconStyle1 pointerType: 1001iconType:101 flag:0
D/PointerIcon(  704): setMouseCustomIcon IconType is same.101
D/PointerIcon(  704): setHoveringSpenIconStyle1 pointerType: 10001iconType:1 flag:0
D/CrashAnrDetector(  704): processName: com.xxxxx.testfacebook
D/PointerIcon(  704): setHoveringSpenCustomIcon IconType is same.1
D/CrashAnrDetector(  704): broadcastEvent : com.xxxxx.testfacebook data_app_crash

解决方案

Provided a more permanent solution here on my other account "Helath":

http://answers.unity3d.com/questions/743523/facebook-sdk-cancelled-login-crash.html

Fair Point, Here is the post I made on the other site:

They basically forgot to refresh the session if the state is "Login Failed" along with "Closed".

If you want to, you can import the facebook sdk into eclipse and change line 63 of FBLogin.Java from

if (SessionState.CLOSED.equals(session.getState())) {
            session = new Builder(FB.getUnityActivity()).setApplicationId(session.getApplicationId()).build();
            Session.setActiveSession(session);
        }

to

   if (SessionState.CLOSED.equals(session.getState()) || SessionState.CLOSED_LOGIN_FAILED.equals(session.getState())) {
                session = new Builder(FB.getUnityActivity()).setApplicationId(session.getApplicationId()).build();
                Session.setActiveSession(session);
            }

Then Export the project as a jar, Only including class files, as classes.jar in the Plugins/Android/facebook/bin folder.

EDIT: It might just be easier if I upload the classes.jar I'm using... Download it here: http://speedy.sh/QPgUp/classes.jar And put it in the Plugins/Android/facebook/bin folder.

EDIT 2: If you are still having this issue, Facebook seems to have released their fix on October 20th 2014. So updating to their newest sdk now fixes the issue!

这篇关于在第二次登录Facebook的统一SDK 6.0崩溃的应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆