取消 Google Play 游戏登录后 Facebook 登录崩溃(反之亦然)

Posted

技术标签:

【中文标题】取消 Google Play 游戏登录后 Facebook 登录崩溃(反之亦然)【英文标题】:Crash with Facebook login after cancelling Google Play Games login (and vice versa) 【发布时间】:2015-08-20 14:35:52 【问题描述】:

android (4.3) 上,如果我开始登录 Google Play 服务并使用后退按钮取消,然后开始登录 Facebook,我的应用会立即崩溃并显示以下输出:

06-05 18:02:43.321 6393 6531 F chromium_net: 外部/铬/基础/线程/thread_local_posix.cc:18: [0605/180243:FATAL:thread_local_posix.cc(18)] 检查失败:错误 == 0 (11 比 0)

06-05 18:02:43.321 6393 6531 F libc:致命信号 11 (SIGSEGV) 在 0xdeadbaad (code=1),线程 6531 (WebViewCoreThre)

06-05 18:02:43.331 6393 6393 D WebView : loadUrlImpl: 调用

06-05 18:02:43.341 2345 2472 D STATUSBAR-StatusBarManagerService: manageDisableList what=0x0 pkg=WindowManager.LayoutParams

06-05 18:02:43.361 2345 2473 D LockPatternUtils: isPcwEnable = null

06-05 18:02:43.361 1935 1996 I SurfaceFlinger: id=3595 createSurf (1x1),1 flag=4, MoginActivi

06-05 18:02:43.366 2345 5574 D LockPatternUtils: isPcwEnable = null

06-05 18:02:43.381 5714 5714 我调试:* * ***


06-05 18:02:43.381 5714 5714 我调试:构建指纹: 'samsung/m0xx/m0:4.3/JSS15J/I9300XXUGNB6:user/release-keys'

06-05 18:02:43.381 5714 5714 I DEBUG : Revision: '12'

06-05 18:02:43.381 5714 5714 我调试:pid:6393,tid:6531,名称: WebViewCoreThre >>> com.XX.Test

06-05 18:02:43.381 5714 5714 I 调试:信号 11 (SIGSEGV),代码 1 (SEGV_MAPERR), 故障地址 deadbaad

06-05 18:02:43.381 2345 5574 D LockPatternUtils: isPcwEnable = null

06-05 18:02:43.391 2345 2473 D LockPatternUtils: isPcwEnable = null

06-05 18:02:43.736 2588 2588 D STATUSBAR-网络控制器: onSignalStrengthsChanged 信号强度=信号强度:9 -1 -1 -1 -1 -1 -1 99 -140 -20 -200 -1 2147483647 gsm|lte 0x3 级别=3

06-05 18:02:44.211 5714 5714 我调试:r0 00000027 r1 00000000 r2 00000000 r3 死机

如果我启动 Facebook 登录并取消,然后启动 Google Play 游戏登录,O 也会崩溃。

我正在使用 Unity 4.6.5、Facebook SDK 6.2.2 和适用于 Unity 0.9.20 的 Google Play 游戏插件。两个登录都可以正常工作,除非我同时尝试。

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

您可以在崩溃中看到这一行:

06-05 18:02:43.321 6393 6531 F libc:致命信号 11 (SIGSEGV) 在 0xdeadbaad(代码=1),线程 6531 (WebViewCoreThre)

我会推荐你​​here你可以看到:

当检测到本机堆损坏时,Android libc abort() 函数会使用 0xDEADBAAD(“dead bad”)。

您需要提供有关您的应用程序和崩溃的更多信息才能正确解决此问题。我会查看您正在打开的 WebView(或者 Unity 正在为您创建?)。请在崩溃后生成错误报告(它在开发人员设置中)并将其通过电子邮件发送给您自己,在那里您可能会找到一个可能会为您提供更多信息的 Tombstone(如果您有 tombstone dereferencer 或其他任何名称,我忘记了)。

【讨论】:

【参考方案2】:

一个疯狂的猜测:你有一个“完成”回调对你的 UI 做一些事情吗?

即使您中止/返回,该过程仍将继续,除非您采取措施取消它。如果它继续并且视图发生更改,您的 onComplete 方法可能会访问在您更改视图后不再可用的变量。

【讨论】:

以上是关于取消 Google Play 游戏登录后 Facebook 登录崩溃(反之亦然)的主要内容,如果未能解决你的问题,请参考以下文章

Google Play 游戏登录已取消,状态码为 SIGN_IN_REQUIRED

检测用户退出 Google Play 游戏登录

删除 google play 游戏数据后卡住无法登录

登录 Google Play 游戏服务后获取玩家 ID

Google Play 游戏服务 - 隐藏/取消隐藏成就

发送邀请后 Google Play 游戏服务崩溃