java.lang.IllegalStateException: GoogleApiClient is not connected yet 意思是:GoogleApiClient尚未连接。

5
我正在尝试通过使用Google Play游戏服务向我的游戏添加成就。负责给予成就的游戏活动已经扩展了BaseGameActivity,并在必须给予成就时调用beginUserInitiatedSignIn,因此用户必须登录,但是在我为用户解锁成就时,我一直收到“java.lang.IllegalStateException: GoogleApiClient is not connected yet”的错误。有人可以告诉我我做错了什么吗?以下是解锁成就的代码(它在扩展BaseGameActivity的类中,来自BaseGameUtils):
private void darConquistaDerrubouArvore(int numeroDeAcertos) {
     // start the asynchronous sign in flow
    mSignInClicked = true;
    mGoogleApiClient.connect();
    if(numeroDeAcertos <= 40)
    {
        try
        {
                beginUserInitiatedSignIn();
                Games.Achievements.unlock(gameHelper.getApiClient(), "CgkIs_27xcoSEAIQAQ");
                Log.i("TelaModoCasual", "usuário não está logado");
                this.onSignInFailed();

        }
        catch(Exception exc)
        {
            exc.printStackTrace();
            this.onSignInFailed();
        }
    }

}

请查看此帖子 - jfdoming
是的,我看到了这篇文章,但我不想要一个登录按钮,我希望我的应用程序立即尝试登录用户。这是不可能的吗? - Fabio Phillip Rocha Marques
很遗憾,您需要在登录之前请求用户权限,因为登录意味着您的应用程序获得了各种新的权限。这就是为什么Android强制您首先显示对话框的原因。 - jfdoming
据我所知,目前还没有办法,但如果有人发现了,他们应该在这里明确地发布。 - jfdoming
1个回答

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接