android - facebook unity sdk 6.0 crash app at second login -
created simple app facebook unity sdk 6.0.
in start function call init facebook.
there button call login , login callback output string.
run on samsung galaxy s5 android 4.4.2.
issue (100% repeatable):
1. first time click login button, facebook login screen. 2. click exit button, app. 3. click login button again, app crashed. crash dump:
w/dalvikvm(16020): threadid=1: thread exiting 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 same.101 d/pointericon( 704): sethoveringspeniconstyle1 pointertype: 10001icontype:1 flag:0 d/pointericon( 704): sethoveringspencustomicon icontype 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 start activity componentinfo{com.xxxxx.testfacebook/com.facebook.unity.fbunityloginactivity}: java.lang.unsupportedoperationexception: session: attempt made open opened session. 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(native method) 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(native method) e/androidruntime(16020): caused by: java.lang.unsupportedoperationexception: session: attempt made open opened session. 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 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 same.101 d/pointericon( 704): sethoveringspeniconstyle1 pointertype: 10001icontype:1 flag: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
provided more permanent solution here on other account "helath":
http://answers.unity3d.com/questions/743523/facebook-sdk-cancelled-login-crash.html
fair point, here post made on other site:
they forgot refresh session if state "login failed" along "closed".
if want to, can import facebook sdk eclipse , 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 project jar, including class files, classes.jar in plugins/android/facebook/bin folder.
edit: might easier if upload classes.jar i'm using... download here: http://speedy.sh/qpgup/classes.jar , put in plugins/android/facebook/bin folder.
edit 2: if still having issue, facebook seems have released fix on october 20th 2014. updating newest sdk fixes issue!
Comments
Post a Comment