gpt4 book ai didi

java - 提交分数排行榜 Google Play 时应用程序崩溃

转载 作者:行者123 更新时间:2023-12-01 12:07:44 24 4
gpt4 key购买 nike

我的 Android 应用程序遇到一些问题。

我使用带有排行榜的 Google Play 游戏服务。我导入所有库,我做了所有需要的事情......

在我的主要 Activity 中,我遵循 Google 开发者文档 here我使用:

mClient.connect();

连接并且有效。

游戏结束时,我尝试提交分数。我在论坛上看到我可以将 mClient 置于静态状态以便在其他 Activity 中使用它。所以我调用 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”已连接。因此,我也尝试在 MainActivity 中提交分数,而无需静态 mClient,但应用程序也会崩溃。

最佳答案

管理 Google API 客户端的最佳做法是让每个 Activity 维护自己的客户端状态。有关更详细的讨论,请参阅此问题:Access google plus client from multiple activities

用户体验将在“主要 Activity ”上登录,然后在游戏结束时的 Activity 中检查 client.isConnected() (如果未连接则调用 connect),然后在连接后提交分数。这样,您将确保在调用 API 之前拥有有效的客户端。

关于java - 提交分数排行榜 Google Play 时应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27470579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com