簡體   English   中英

提交分數排行榜Google Play時應用崩潰

[英]App crash when is submitting score leaderboard Google Play

我的Android應用程序存在一些問題。

我將Google Play游戲服務與排行榜一起使用。 我導入所有庫,我需要做的所有事情...

在我的主要活動中,我遵循此處的Google開發者文檔並使用:

mClient.connect();

為連接和工作。

在游戲結束時,我嘗試提交分數。 我在論壇上看到可以將mClient置於靜態狀態以在其他活動中使用它。 所以我打電話給onCreate:

Games.Leaderboards.submitScore(MainActivity.mClient, getString(R.string.class_1), myscore);

但是提交分數時應用崩潰。 我有這些錯誤:

12-14 15:37:24.856: E/AndroidRuntime(19613): FATAL EXCEPTION: main
12-14 15:37:24.856: E/AndroidRuntime(19613): java.lang.RuntimeException: Unable to resume activity {com.test.app/com.test.app.Result}: java.lang.IllegalStateException: GoogleApiClient must be connected.
12-14 15:37:24.856: E/AndroidRuntime(19613):    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2141)
12-14 15:37:24.856: E/AndroidRuntime(19613):    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2156)
12-14 15:37:24.856: E/AndroidRuntime(19613):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1680)
12-14 15:37:24.856: E/AndroidRuntime(19613):    at android.app.ActivityThread.access$1500(ActivityThread.java:121)
12-14 15:37:24.856: E/AndroidRuntime(19613):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:943)
12-14 15:37:24.856: E/AndroidRuntime(19613):    at android.os.Handler.dispatchMessage(Handler.java:99)
12-14 15:37:24.856: E/AndroidRuntime(19613):    at android.os.Looper.loop(Looper.java:130)
12-14 15:37:24.856: E/AndroidRuntime(19613):    at android.app.ActivityThread.main(ActivityThread.java:3701)
12-14 15:37:24.856: E/AndroidRuntime(19613):    at java.lang.reflect.Method.invokeNative(Native Method)
12-14 15:37:24.856: E/AndroidRuntime(19613):    at java.lang.reflect.Method.invoke(Method.java:507)
12-14 15:37:24.856: E/AndroidRuntime(19613):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
12-14 15:37:24.856: E/AndroidRuntime(19613):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)
12-14 15:37:24.856: E/AndroidRuntime(19613):    at dalvik.system.NativeStart.main(Native Method)
12-14 15:37:24.856: E/AndroidRuntime(19613): Caused by: java.lang.IllegalStateException: GoogleApiClient must be connected.
12-14 15:37:24.856: E/AndroidRuntime(19613):    at com.google.android.gms.common.internal.o.a(Unknown Source)
12-14 15:37:24.856: E/AndroidRuntime(19613):    at com.google.android.gms.games.Games.c(Unknown Source)
12-14 15:37:24.856: E/AndroidRuntime(19613):    at com.google.android.gms.games.internal.api.LeaderboardsImpl.submitScore(Unknown Source)
12-14 15:37:24.856: E/AndroidRuntime(19613):    at com.google.android.gms.games.internal.api.LeaderboardsImpl.submitScore(Unknown Source)
12-14 15:37:24.856: E/AndroidRuntime(19613):    at com.test.app.Result.onResume(Result.java:129)
12-14 15:37:24.856: E/AndroidRuntime(19613):    at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1150)
12-14 15:37:24.856: E/AndroidRuntime(19613):    at android.app.Activity.performResume(Activity.java:3832)
12-14 15:37:24.856: E/AndroidRuntime(19613):    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2131)
12-14 15:37:24.856: E/AndroidRuntime(19613):    ... 12 more

一開始,它寫為“必須連接GoogleApiClient”,但連接了“ mClient”。 因此,我也嘗試在沒有mClient的情況下在MainActivity中提交分數,但應用也會崩潰。

管理Google API客戶端的最佳做法是讓每個活動保持其自己的客戶端狀態。 請參閱此問題以進行更詳細的討論: 從多個活動訪問google plus客戶端

用戶體驗將在“主要活動”上登錄,然后在游戲結束時的活動中,檢查client.isConnected()(如果未連接,則調用connect),然后在連接后提交分數。 這樣,您將在調用API之前確保您具有有效的客戶端。

暫無
暫無

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

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