簡體   English   中英

BaseGameUtils未知錯誤,onConnectionFailed:結果4

[英]BaseGameUtils Unknown Error, onConnectionFailed: result 4

我已經測試了ButtonClicker 2000示例,它運行良好。 現在我正在嘗試將Google游戲服務實施到另一個游戲中,但它會出現一些錯誤:

06-06 12:30:46.353: D/BaseGameActivity(7982): isGooglePlayServicesAvailable returned 0
06-06 12:30:46.353: D/BaseGameActivity(7982): beginUserInitiatedSignIn: starting new sign-in flow.
06-06 12:30:46.416: D/BaseGameActivity(7982): Connecting GamesClient.
06-06 12:30:46.424: D/BaseGameActivity(7982): onStart.
06-06 12:30:46.424: D/BaseGameActivity(7982): onStart: connecting clients.
06-06 12:30:46.424: D/BaseGameActivity(7982): Connecting GamesClient.
06-06 12:30:46.424: E/GmsClient(7982): Calling connect() while still connected, missing disconnect().
06-06 12:30:46.713: D/BaseGameActivity(7982): onConnectionFailed: result 4
06-06 12:30:46.713: D/BaseGameActivity(7982): onConnectionFailed: since user initiated sign-in, trying to resolve problem.
06-06 12:30:46.713: D/BaseGameActivity(7982): resolveConnectionResult: trying to resolve result: ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{41692200: android.os.BinderProxy@416921a0}}
06-06 12:30:46.713: D/BaseGameActivity(7982): result has resolution. Starting it.

06-06 12:30:46.900: D/BaseGameActivity(7982): onActivityResult, req 9001 response 0
06-06 12:30:46.900: D/BaseGameActivity(7982): responseCode != RESULT_OK, so not reconnecting.
06-06 12:30:46.900: D/BaseGameActivity(7982): giveUp: giving up on connection. Status code: 4
06-06 12:30:46.900: D/BaseGameActivity(7982): Making error dialog for error: 4

com.google.android.gms記錄以下錯誤:

E/SignInActivity(7432): SignInActivity must be started with startActivityForResult

我做了什么:

  • 我已經正確配置了開發人員控制台端。 SHA1是正確的(與androiddebug密鑰庫匹配)。
  • 在API控制台中,一切看起來都很好。
  • 我擴展了GameBaseActivity並實現了請求的接口。
  • 我在values文件夾中有一個ids.xml,它與Developer Console中的一個匹配。
  • 我已經覆蓋了所請求的方法,包含在ActivityResult()中
  • 清單也沒問題,它包括請求的元數據。

  • 這是我用於登錄onCreate的代碼:

     setSignInMessages("SIGNING IN", "SIGNING OUT"); beginUserInitiatedSignIn(); 

在測試示例Button Clicker 2000時,我也遇到了未知錯誤,並修復了正確配置儀表板的問題。 當前的游戲儀表板也配置正確,所以我真的不知道發生了什么。 我錯過了什么?

編輯:

  • 我還嘗試解包BaseGameActivity並直接在我的主Activity中實現GameHelper。
  • 我嘗試發布應用游戲設置(因為此游戲已在Play商店發布)。 使用我的發布簽名SHA1密鑰鏈接另一個應用。 設置為安裝的主要應用程序。 仍然沒有運氣。

那真的很奇怪。 根據您的BaseGameActivity日志,您所遇到的錯誤不應發生。

SignInActivity在代碼中確實不可見,因為你通過調用GameHelper.resolveConnectionResult啟動它,它將調用mConnectionResult.startResolutionForResult(mActivity, RC_RESOLVE) 這是具有將啟動SignInActivity的Intent的mConnectionResult 並且BaseGameActivity的日志表示您正在正確啟動它,所以除非您在BaseGameActivity和GameHelper中進行了一些更改,否則錯誤很奇怪。

你在哪里尋找錯誤? 在你的包過濾器? 真正有用的信息顯示在LogCat中,但不在您的應用程序過濾器中。 在LogCat中查找沒有過濾器的所有消息,並搜索標簽Volley和GameAgent。 它可能會顯示一些錯誤。

還有一件事:SignIn對話框顯示了嗎? 何時顯示SignInActivity錯誤(時間戳)?

錯誤很明顯:

E/SignInActivity(): SignInActivity must be started with startActivityForResult

這意味着SignInActivity正在使用startActivity而不是startActivityForResult啟動。

搜索此活動的開始位置並更改為startActivityForResult。 如果您發布了一些代碼,我將能夠提供更多幫助!

根據你的錯誤你連接gamehelper兩次(也許在你的oncreate?)並返回錯誤狀態4.你不給代碼,但我相信我知道你的問題是什么。 您可能正在使用GamesClient.connect弄亂谷歌登錄等等。在連接gamesclient之前,等待谷歌帳戶登錄。 我做到了

public void onSignInSucceeded() {    
            mGamesClient.connect();}

你可以在你的onCreate中創建GamesClient對象,但是連接更適合我給你的這個方法。 我花了好幾個小時解決這個問題,希望我能提供幫助

問題:

ConnectionResult {statusCode = SIGN_IN_REQUIRED,resolution = PendingIntent {#:android.os.BinderProxy@#}}

解決方法:

@Override
public void onConnectionFailed(ConnectionResult arg0) {
    <Your Code...>

    try {
        arg0.startResolutionForResult(this, 9001);
    } catch (SendIntentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

這只是一個粗略的演示,處理谷歌建議的ConnectionResult。

了解更多信息請點擊這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM