forge.facebook.logout()在Android下崩溃

forge.facebook.logout()在Android下崩溃,facebook,sencha-touch-2,trigger.io,Facebook,Sencha Touch 2,Trigger.io,我们的两个应用程序都有这个问题——一个是用Sencha Touch2编写的,另一个没有这样的sh0t。在这两个应用程序上,我们使用forge.facebook时都会遇到相同的错误: 首先进行身份验证,然后在成功后重新打开应用程序并从facebook注销-这会导致应用程序崩溃并弹出“不幸的是,AppName已停止” 以下是logcat登录,然后在不重新打开应用程序的情况下注销: D/Forge (10379): Returned: {"content":true,"callid":"1B5B7

我们的两个应用程序都有这个问题——一个是用Sencha Touch2编写的,另一个没有这样的sh0t。在这两个应用程序上,我们使用forge.facebook时都会遇到相同的错误: 首先进行身份验证,然后在成功后重新打开应用程序并从facebook注销-这会导致应用程序崩溃并弹出“不幸的是,AppName已停止”

以下是logcat登录,然后在不重新打开应用程序的情况下注销:

D/Forge   (10379): Returned: {"content":true,"callid":"1B5B7367-8CE2-4F45-AE6A-CBE660026F79","status":"success"}
D/Forge   (10379): Native call facebook.logout with task.params: {}
D/Facebook-Util(10379): GET URL: https://api.facebook.com/restserver.php?access_token=CAAGM3jqOnesBAIc4G2SHQxgXiIpgWbWIMZAHpw5V2G5BW8nUwjPhosSCBp7EN1Ktw0i4JkVVIrs4Alza3cTzEG1ukFHLuC3MSRBYXViywvoBGlYF2CJh26ecL4ZCwfmEbdMTWwqrvK2lAJ7rLRm4TipkEknTcZD&method=auth.expireSession&format=json
W/InputMethodManagerService( 2176): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@418be858 attribute=null, token = android.os.BinderProxy@4134a3a8
D/dalvikvm(10379): GC_CONCURRENT freed 529K, 46% free 4145K/7588K, paused 5ms+3ms, total 55ms
D/Forge   (10379): Returned: {"content":null,"callid":"CF3C2DED-3CB5-4611-8348-BC355B24D4FB","status":"success"}
D/Forge   (10634): Returned: {"content":true,"callid":"4A65AEED-B87B-48A3-8DB2-1438E9D4A321","status":"success"}
D/Forge   (10634): Native call facebook.logout with task.params: {}
D/Facebook-Util(10634): GET URL: https://api.facebook.com/restserver.php?access_token=CAAGM3jqOnesBABZB5d11jcrodjJxHbQfsVaO2eeRscElZCEW2NBjSN176YQqxfTKUZAtAd1FxlikpMEw0SrKorJ89TtQWj0zuXBH1m15ydvQo42sFOEormrKobfzXXTmHuR1Ip4dV8zjlWSZCPRP&method=auth.expireSession&format=json
W/InputMethodManagerService( 2176): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@412dbd50 attribute=null, token = android.os.BinderProxy@41491850
W/dalvikvm(10634): threadid=32: thread exiting with uncaught exception (group=0x40dd7930)
E/AndroidRuntime(10634): FATAL EXCEPTION: Thread-487
E/AndroidRuntime(10634): java.lang.IllegalArgumentException: Invalid context argument
E/AndroidRuntime(10634):    at android.webkit.CookieSyncManager.createInstance(CookieSyncManager.java:86)
E/AndroidRuntime(10634):    at com.facebook.internal.Utility.clearCookiesForDomain(Utility.java:261)
E/AndroidRuntime(10634):    at com.facebook.internal.Utility.clearFacebookCookies(Utility.java:285)
E/AndroidRuntime(10634):    at com.facebook.Session.closeAndClearTokenInformation(Session.java:593)
E/AndroidRuntime(10634):    at com.facebook.android.Facebook.logoutImpl(Facebook.java:667)
E/AndroidRuntime(10634):    at com.facebook.android.AsyncFacebookRunner$1.run(AsyncFacebookRunner.java:89)
W/ActivityManager( 2176):   Force finishing activity com.bigmage.facerage/io.trigger.forge.android.core.ForgeActivity
D/AKMD2   ( 2176): akm_disable_sensor: Accel is disabled. (orien = 0)
I/AKMD2   ( 2176): enable_accelerometer, mEnabled = 1, enable = 0
D/dalvikvm(10634): GC_CONCURRENT freed 3635K, 52% free 3671K/7588K, paused 13ms+4ms, total 189ms
D/dalvikvm( 2176): GC_FOR_ALLOC freed 649K, 34% free 11995K/18024K, paused 114ms, total 116ms
I/dalvikvm-heap( 2176): Grow heap (frag case) to 12.996MB for 635812-byte allocation
I/ActivityManager( 2176): Displayed com.cyanogenmod.trebuchet/.Launcher: +666ms
D/android.widget.GridLayout( 2479): vertical constraints: y2-y0>=120, y3-y2>=78, y3-y0<=192, y2-y1<=1 are inconsistent; permanently removing: y3-y0<=192. 
D/Forge   (10634): Native call request.ajax with task.params: {"url":"http://192.168.1.109/facerage.dev/backend/data/getStatus?token=CAAGM3jqOnesBABZB5d11jcrodjJxHbQfsVaO2eeRscElZCEW2NBjSN176YQqxfTKUZAtAd1FxlikpMEw0SrKorJ89TtQWj0zuXBH1m15ydvQo42sFOEormrKobfzXXTmHuR1Ip4dV8zjlWSZCPRP&userId=100005089685883&langId=1&callback=Ext.data.JsonP.callback5&_dc=1374837560572&","username":null,"password":null,"data":null,"headers":{"Accept":"*/*"},"timeout":60000,"type":"GET","boundary":null,"files":null,"fileUploadMethod":"multipart"}
D/Forge   (10634): Returned: {"content":"try{Ext.data.JsonP.callback5({\"status\":\"ok\",\"data\":{\"user\":{\"id\":100005089685883,\"isUser\":1,\"mutual\":0,\"name\":\"\\u0418\\u0432\\u0430\\u043d \\u0421\\u0442\\u0443\\u0434\\u0438\\u043e \\u0411\\u0438\\u0433\\u043c\\u0435\\u0439\\u0434\\u0436 \\u0412\\u0430\\u0440\\u043d\\u0430\",\"score\":0,\"coins\":\"3975\",\"version\":2,\"type\":\"free\"},\"games\":{\"waiting\":1,\"total\":1,\"checksum\":\"0b0e694b092ad4361bb76d74eb33cdc4\"},\"gamePriceFree\":500,\"gamePricePaid\":500,\"lastUpdate\":0,\"forceUpdate\":0,\"scoreHasUpdate\":0,\"itemsPerPage\":25},\"message\":\"\"});} catch(err) {}","callid":"BE6E4316-40C7-4484-A63B-9DBECDC1EA54","status":"success"}
I/Forge   (10634): Pausing webview while application not focussed.
D/Forge   (10634): Returned: {"event":"event.appPaused","params":null}
D/webviewglue(10634): nativeDestroy view: 0x4c16ad10
和登录,然后使用重新打开的应用程序注销:

D/Forge   (10379): Returned: {"content":true,"callid":"1B5B7367-8CE2-4F45-AE6A-CBE660026F79","status":"success"}
D/Forge   (10379): Native call facebook.logout with task.params: {}
D/Facebook-Util(10379): GET URL: https://api.facebook.com/restserver.php?access_token=CAAGM3jqOnesBAIc4G2SHQxgXiIpgWbWIMZAHpw5V2G5BW8nUwjPhosSCBp7EN1Ktw0i4JkVVIrs4Alza3cTzEG1ukFHLuC3MSRBYXViywvoBGlYF2CJh26ecL4ZCwfmEbdMTWwqrvK2lAJ7rLRm4TipkEknTcZD&method=auth.expireSession&format=json
W/InputMethodManagerService( 2176): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@418be858 attribute=null, token = android.os.BinderProxy@4134a3a8
D/dalvikvm(10379): GC_CONCURRENT freed 529K, 46% free 4145K/7588K, paused 5ms+3ms, total 55ms
D/Forge   (10379): Returned: {"content":null,"callid":"CF3C2DED-3CB5-4611-8348-BC355B24D4FB","status":"success"}
D/Forge   (10634): Returned: {"content":true,"callid":"4A65AEED-B87B-48A3-8DB2-1438E9D4A321","status":"success"}
D/Forge   (10634): Native call facebook.logout with task.params: {}
D/Facebook-Util(10634): GET URL: https://api.facebook.com/restserver.php?access_token=CAAGM3jqOnesBABZB5d11jcrodjJxHbQfsVaO2eeRscElZCEW2NBjSN176YQqxfTKUZAtAd1FxlikpMEw0SrKorJ89TtQWj0zuXBH1m15ydvQo42sFOEormrKobfzXXTmHuR1Ip4dV8zjlWSZCPRP&method=auth.expireSession&format=json
W/InputMethodManagerService( 2176): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@412dbd50 attribute=null, token = android.os.BinderProxy@41491850
W/dalvikvm(10634): threadid=32: thread exiting with uncaught exception (group=0x40dd7930)
E/AndroidRuntime(10634): FATAL EXCEPTION: Thread-487
E/AndroidRuntime(10634): java.lang.IllegalArgumentException: Invalid context argument
E/AndroidRuntime(10634):    at android.webkit.CookieSyncManager.createInstance(CookieSyncManager.java:86)
E/AndroidRuntime(10634):    at com.facebook.internal.Utility.clearCookiesForDomain(Utility.java:261)
E/AndroidRuntime(10634):    at com.facebook.internal.Utility.clearFacebookCookies(Utility.java:285)
E/AndroidRuntime(10634):    at com.facebook.Session.closeAndClearTokenInformation(Session.java:593)
E/AndroidRuntime(10634):    at com.facebook.android.Facebook.logoutImpl(Facebook.java:667)
E/AndroidRuntime(10634):    at com.facebook.android.AsyncFacebookRunner$1.run(AsyncFacebookRunner.java:89)
W/ActivityManager( 2176):   Force finishing activity com.bigmage.facerage/io.trigger.forge.android.core.ForgeActivity
D/AKMD2   ( 2176): akm_disable_sensor: Accel is disabled. (orien = 0)
I/AKMD2   ( 2176): enable_accelerometer, mEnabled = 1, enable = 0
D/dalvikvm(10634): GC_CONCURRENT freed 3635K, 52% free 3671K/7588K, paused 13ms+4ms, total 189ms
D/dalvikvm( 2176): GC_FOR_ALLOC freed 649K, 34% free 11995K/18024K, paused 114ms, total 116ms
I/dalvikvm-heap( 2176): Grow heap (frag case) to 12.996MB for 635812-byte allocation
I/ActivityManager( 2176): Displayed com.cyanogenmod.trebuchet/.Launcher: +666ms
D/android.widget.GridLayout( 2479): vertical constraints: y2-y0>=120, y3-y2>=78, y3-y0<=192, y2-y1<=1 are inconsistent; permanently removing: y3-y0<=192. 
D/Forge   (10634): Native call request.ajax with task.params: {"url":"http://192.168.1.109/facerage.dev/backend/data/getStatus?token=CAAGM3jqOnesBABZB5d11jcrodjJxHbQfsVaO2eeRscElZCEW2NBjSN176YQqxfTKUZAtAd1FxlikpMEw0SrKorJ89TtQWj0zuXBH1m15ydvQo42sFOEormrKobfzXXTmHuR1Ip4dV8zjlWSZCPRP&userId=100005089685883&langId=1&callback=Ext.data.JsonP.callback5&_dc=1374837560572&","username":null,"password":null,"data":null,"headers":{"Accept":"*/*"},"timeout":60000,"type":"GET","boundary":null,"files":null,"fileUploadMethod":"multipart"}
D/Forge   (10634): Returned: {"content":"try{Ext.data.JsonP.callback5({\"status\":\"ok\",\"data\":{\"user\":{\"id\":100005089685883,\"isUser\":1,\"mutual\":0,\"name\":\"\\u0418\\u0432\\u0430\\u043d \\u0421\\u0442\\u0443\\u0434\\u0438\\u043e \\u0411\\u0438\\u0433\\u043c\\u0435\\u0439\\u0434\\u0436 \\u0412\\u0430\\u0440\\u043d\\u0430\",\"score\":0,\"coins\":\"3975\",\"version\":2,\"type\":\"free\"},\"games\":{\"waiting\":1,\"total\":1,\"checksum\":\"0b0e694b092ad4361bb76d74eb33cdc4\"},\"gamePriceFree\":500,\"gamePricePaid\":500,\"lastUpdate\":0,\"forceUpdate\":0,\"scoreHasUpdate\":0,\"itemsPerPage\":25},\"message\":\"\"});} catch(err) {}","callid":"BE6E4316-40C7-4484-A63B-9DBECDC1EA54","status":"success"}
I/Forge   (10634): Pausing webview while application not focussed.
D/Forge   (10634): Returned: {"event":"event.appPaused","params":null}
D/webviewglue(10634): nativeDestroy view: 0x4c16ad10
除了forge.facebook.authorize还是hasAuth,哪个是成功的。。仍然返回无效的令牌,我唯一能做的就是forge.facebook.logout():)

支持人员(我们为此支付了额外费用)礼貌地告诉我们停止,因为他们与facebook的演示应用程序工作正常,无法重现问题。。。然而如果有人遇到同样的问题,请。。。你还需要什么吗?我使用的代码如他们的网站所示——仅此而已

哦,当我尝试使用以下代码使用选项卡登录时:

forge.tabs.openWithOptions({
    url: 'https://m.facebook.com/dialog/oauth?display=touch&client_id=1234970&scope=email%2Cfriends_about_me%2Cfriends_birthday%2Cfriends_hometown%2Cfriends_relationships%2Cfriends_work_history&type=user_agent&redirect_uri=fbconnect%3A%2F%2Fsuccess',
    pattern: 'fbconnect://success',
    title: 'Login Page'
}, function (data) {

});
我收到应用程序崩溃的弹出:“不幸的是,另一个InstalledApp已停止。”


WTF

更新:通过Ivan提供的更多信息,我们成功地追踪到了Android Facebook SDK中的崩溃行为。已经包含在我们的下一个模块版本中,该模块作为该模块的2.0.1版上线


原始答案:

我将从
openWithOptions
问题开始:这看起来像是另一个InstalledApp也注册了,用scheme
fbconnect
处理URL。使用不同的重定向URL应该解决这个问题-注意,它需要位于FB应用程序配置中允许的URL集中

对于前一个IllegalArgumentException,正如电子邮件中所讨论的,我们无法使用以下方法重新创建问题:如果您能够与我们共享您的源代码,或其精简版本,我们很乐意使用它


如果你使用这个简单的应用程序也会遇到同样的问题,那么判断这是否是你的开发环境中的问题也是很有启发性的。

如果你为facebook.logout()添加try/catch异常,那就不容易了。另一个installedapp根本不是我的,而是其他开发人员的(我认为它甚至没有使用forge)。还有,为什么当我打开trigger.io应用程序内的选项卡时,另一个应用程序将处理结果?!我需要fbconnect://success 否则,您的选项卡会打开重定向url,而我不希望这样做,因为我正在搜索一个避免使用您的forge.facebook方法的解决方案。