Google Play Services排行榜无法显示:UI冲突报错求助
解决Google Play Services排行榜UI报错:"Trying to show UI while waiting for a result from an existing UI"
嘿,我之前也踩过这个坑!这个报错的核心问题很明确:你的Android Java Activity没有把onActivityResult的回调结果正确转发给Google Play Games的C++ SDK,导致SDK误以为还有一个未完成的UI操作在等待结果,所以直接阻止了新的排行榜UI请求。
具体解决方案步骤:
找到你的Android主Activity文件
如果你是用Unity开发的,这个文件通常是UnityPlayerActivity.java,或者你自定义的继承自它的Activity类。重写
onActivityResult方法并转发结果
在Activity类中添加(或修改)以下代码,确保把Activity的结果传递给Play Games SDK:@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // 关键:将结果转发给Google Play Games客户端 com.google.android.gms.auth.api.signin.GoogleSignInAccount account = com.google.android.gms.auth.api.signin.GoogleSignIn.getLastSignedInAccount(this); if (account != null) { com.google.android.gms.games.Games.getGamesClient(this, account) .handleActivityResult(requestCode, resultCode, data); } }
额外检查点:
- 确保你的按钮没有被重复点击(比如添加防重复点击逻辑),避免短时间内多次调用
ShowLeaderboardsUI() - 确认登录完成后再调用显示排行榜的方法,虽然你说登录正常,但可以在调用前加个判断:
public void ShowLeaderboardsUI() { if (PlayGamesPlatform.Instance.IsAuthenticated()) { PlayGamesPlatform.Instance.ShowLeaderboardUI("myString"); } }
这样修改后,SDK就能正确处理之前UI操作的结果,不会再阻止你打开排行榜UI了。
内容的提问来源于stack exchange,提问作者weaverbeaver
相关产品推荐
相关产品推荐

