2014-02-05 27 views
1

我一直致力于开发基于回合的多人游戏。每一件东西都是做工精细相当长一段时间,直到突然间我不能再打开“匹配收件箱”的意图(例如,Android Google Play TurnBasedMatch-无效状态:4

Intent intent = getGamesClient().getMatchInboxIntent(); 
startActivityForResult(intent, MainActivity.RC_LOOK_AT_MATCHES); 

当我看到错误的堆栈跟踪,这是因为有一个匹配无效状态 更糟的是,即使当我尝试加载比赛简单地删除/辞退他们所有的编程,我也得到了错误:

 
02-05 07:43:36.684: E/AndroidRuntime(13814): FATAL EXCEPTION: main 
02-05 07:43:36.684: E/AndroidRuntime(13814): Process: com.oakonell.ticstacktoe, PID: 13814 
02-05 07:43:36.684: E/AndroidRuntime(13814): java.lang.IllegalStateException: Not a valid turn status: 4 
02-05 07:43:36.684: E/AndroidRuntime(13814): at android.os.Parcel.readException(Parcel.java:1473) 
02-05 07:43:36.684: E/AndroidRuntime(13814): at android.os.Parcel.readException(Parcel.java:1419) 
02-05 07:43:36.684: E/AndroidRuntime(13814): at com.google.android.gms.internal.fc$a$a.a(Unknown Source) 
02-05 07:43:36.684: E/AndroidRuntime(13814): at com.google.android.gms.internal.ex.a(Unknown Source) 
02-05 07:43:36.684: E/AndroidRuntime(13814): at com.google.android.gms.games.GamesClient.loadTurnBasedMatches(Unknown Source) 

(它看起来像常量, MATCH_TURN_STATUS_ *从0-3运行,所以4无效。)

除了API以某种方式允许我以无知的方式将匹配保存为无效状态之外,似乎一旦有一个处于无效状态,即使清理它也不能被引用。

我看到开发者控制台引用了一个API来重置(白名单)用户的匹配。

https://cloud.google.com/console/project/[app id]/apiui/api/gamesManagement/method/gamesManagement.turnBasedMatches.reset 

但我无法从控制台本身得到这个工作(我也不确定如何指定用户)。有没有一种方法可以从Android应用程序代码访问它?否则,我将如何从控制台访问以重置受此次无效比赛影响的(测试者)球员的比赛?

+0

我想第二个问题是,我是如何在无效转身状态下保存比赛的,以及如何在将来避免这种情况? –

回答

0

我能够“断开”应用程序,删除我的用户的所有谷歌数据。 转到设备设置|帐户|谷歌。 点击Google+,在帐户设置下选择具有损坏匹配的用户,点击带有Google+登录的应用,选择包含损坏匹配的应用,最后点击断开连接。

当对话框出现时确认,勾选“同时删除谷歌所有的程序(App)的活动,并单击断开确认。

这并没有立即似乎解决这个问题,我也被清除设备的“Google Play服务”缓存,进入设备设置|应用程序管理器,找到“Google Play服务”,然后点击它,对于该应用程序,清除数据/缓存,管理数据,无论您能够删除所有本地缓存​​数据我认为这不会损害任何其他使用Google Play服务的应用程序,因为您应该能够将应用程序安装在新设备上并将其同步到您的云端保存状态。好的,也许这可能会删除未完成的更改还没有被发送到云端......谨慎使用)。这个可能不需要在ord中执行呃为我的用户的“匹配意图”再次工作,但正如我所说,它似乎没有立即工作后,应用程序断开连接,并relogging英寸它要么需要时间的断开传播跨越云(?)或我还必须清除设备的缓存...

现在希望我不会以某种方式保存与无效状态匹配的任何匹配项。 这个解决方案肯定会等待两周,我认为这是我的另一种选择,等待比赛在两名用户没有活动后过期。

(我想这是如何解决的第三个选择是在谷歌服务器上运行一些“清理”作业,以定期或响应此计算器问题或电子邮件/当我的设备的“Google Play服务停止响应”时,我发送了崩溃报告。)