【发布时间】:2015-09-26 21:56:07
【问题描述】:
基本上,googleApiClient 能够连接。但是如果我将 Games.API 添加到 APIclient,则会发生一些未捕获的异常。我几乎到处搜索,但似乎没有人有这个问题。一旦我从 Builder 中删除 Games.API,它就会正常连接。 但我需要 Games.API 在我的游戏中包含排行榜。 请问有人可以帮我吗?
Logcat:
07-09 00:43:19.709 14636-14636/? W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x418c49a8)
07-09 00:43:19.709 14636-14636/? W/dalvikvm﹕ threadid=1: uncaught exception occurred
07-09 00:43:19.709 14636-14636/? W/System.err﹕ java.lang.IllegalStateException: A fatal developer error has occurred. Check the logs for further information.
07-09 00:43:19.724 14636-14636/? W/System.err﹕ at com.google.android.gms.common.internal.zzi$zza.zzc(Unknown Source)
07-09 00:43:19.724 14636-14636/? W/System.err﹕ at com.google.android.gms.common.internal.zzi$zza.zzr(Unknown Source)
07-09 00:43:19.724 14636-14636/? W/System.err﹕ at com.google.android.gms.common.internal.zzi$zzc.zznQ(Unknown Source)
07-09 00:43:19.724 14636-14636/? W/System.err﹕ at com.google.android.gms.common.internal.zzi$zzb.handleMessage(Unknown Source)
07-09 00:43:19.724 14636-14636/? W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:107)
07-09 00:43:19.724 14636-14636/? W/System.err﹕ at android.os.Looper.loop(Looper.java:194)
07-09 00:43:19.724 14636-14636/? W/System.err﹕ at android.app.ActivityThread.main(ActivityThread.java:5405)
07-09 00:43:19.724 14636-14636/? W/System.err﹕ at java.lang.reflect.Method.invokeNative(Native Method)
07-09 00:43:19.724 14636-14636/? W/System.err﹕ at java.lang.reflect.Method.invoke(Method.java:525)
07-09 00:43:19.724 14636-14636/? W/System.err﹕ at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:838)
07-09 00:43:19.724 14636-14636/? W/System.err﹕ at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
07-09 00:43:19.724 14636-14636/? W/System.err﹕ at dalvik.system.NativeStart.main(Native Method)
07-09 00:43:19.724 14636-14636/? W/dalvikvm﹕ threadid=1: calling UncaughtExceptionHandler
07-09 00:43:19.725 14636-14636/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.IllegalStateException: A fatal developer error has occurred. Check the logs for further information.
at com.google.android.gms.common.internal.zzi$zza.zzc(Unknown Source)
at com.google.android.gms.common.internal.zzi$zza.zzr(Unknown Source)
at com.google.android.gms.common.internal.zzi$zzc.zznQ(Unknown Source)
at com.google.android.gms.common.internal.zzi$zzb.handleMessage(Unknown Source)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5405)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:838)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
at dalvik.system.NativeStart.main(Native Method)
清单:
<meta-data android:name="com.google.android.gms.games.APP_ID"
android:value="480680880602" />
<meta-data
android:name="com.google.android.gms.appstate.APP_ID"
android:value="480680880602" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
代码:
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(Drive.API)
.addApi(Games.API)
.addApi(AppStateManager.API)
.addScope(AppStateManager.SCOPE_APP_STATE)
.addScope(Games.SCOPE_GAMES)
.addScope(Drive.SCOPE_FILE)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
public void onConnected(Bundle connectionHint) {
Toast.makeText(Homepage.this, "CONNECTED", Toast.LENGTH_SHORT).show();
SharedPreferences load=getSharedPreferences("mysavegame", MODE_PRIVATE);
int a=load.getInt("score", 0);
if (mGoogleApiClient != null && mGoogleApiClient.isConnected()) {
// Games.Leaderboards.submitScore(mGoogleApiClient, "CgkI2tPA1v4NEAIQAA", a);
}
Toast.makeText(Homepage.this, "SCORE SUBMITTED", Toast.LENGTH_SHORT).show();
// Connected to Google Play services!
// The good stuff goes here.
}
游戏链接:https://play.google.com/store/apps/details?id=com.iitb.nihar.declarecardgame
【问题讨论】:
-
您可以考虑为 Games API 使用单独的 GoogleApiClient。 Google Play 游戏生命周期(用户从 Google Play 游戏登录和退出)可以(或应该,根据 Google:developers.google.com/games/services/checklist)在一定程度上独立于游戏交互的其余部分,因此将与生命周期分开其他 Google API。不能说它是否真的有助于您的异常,但它可能值得尝试,并且无论如何可能是一个很好的设计更改。
-
试过了,但还是徒劳。同样的问题仍然存在。
-
没有想法。发生错误时日志中是否还有其他可能相关的内容?您发布的内容看起来只是过滤到您的应用进程。
-
不知道你有没有进步,但是我遇到了这个,它可能会帮助你解决问题:developers.google.com/games/services/android/logging
-
您的部分问题是您无法将 app_id 硬编码到清单中。我找到了这个讨论,因为我得到了和你完全相同的错误。我有一个无效的 app_id,它导致了崩溃。没有正确定义 app_id 也会导致此崩溃。需要在 res/values 中定义。
标签: java android-studio google-play-services google-play-games google-api-client