![](/img/trans.png)
[英]ClassDefNotFound Error with Google BaseGameUtils GameHelper
[英]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
我做了什么:
清單也沒問題,它包括請求的元數據。
這是我用於登錄onCreate的代碼:
setSignInMessages("SIGNING IN", "SIGNING OUT"); beginUserInitiatedSignIn();
在測試示例Button Clicker 2000時,我也遇到了未知錯誤,並修復了正確配置儀表板的問題。 當前的游戲儀表板也配置正確,所以我真的不知道發生了什么。 我錯過了什么?
編輯:
那真的很奇怪。 根據您的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.