You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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请求。

具体解决方案步骤:

  1. 找到你的Android主Activity文件
    如果你是用Unity开发的,这个文件通常是UnityPlayerActivity.java,或者你自定义的继承自它的Activity类。

  2. 重写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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:06:34