实施 Google Play 游戏时出错

Posted

技术标签:

【中文标题】实施 Google Play 游戏时出错【英文标题】:Error while implementing Google Play Games 【发布时间】:2014-06-14 17:56:54 【问题描述】:

我正在使用导入语句来尝试使用我的应用实施 Play 游戏。

-导入com.google.android.gms.games.GamesClient无法解析

我有 BaseGameUtils 引用 google-play-services_lib,我的项目将 BaseGameUtils 引用为一个库。

据我了解,GameClient 已于 2014 年 2 月 7 日被弃用,但在查看 Google 的示例代码(例如 ButtonClicker)时,它仍然使用此导入和导入中的一些方法调用。

我从 Google 的 GitHub sample app repository 获得了用于 ButtonClicker2000 的代码,其中一些代码已被回收并用于我遇到错误的程序中。

这是我能想到的所有信息,如果还有什么可以帮助的,请告诉我。

【问题讨论】:

我的 BaseGameUtils 版本在任何时候都引用 GamesClient(尽管在 cmets 中仍有一些提及)。您是否从here 下载了当前版本? 我认为问题在于我使用了来自 GitHub 的代码并且它没有更新。你知道旧的 GitHub 代码到底应该改变什么吗? 【参考方案1】:

我在 ButtonClicker2000 示例上苦苦挣扎了几天,遇到了和你一样的问题。

我认为示例代码中的问题是某些行没有更新。如果您查看that page,您可以很容易地看到这些行的更新版本就在那里。但是 GitHub 页面中的代码并没有完全更新。

因为 GamesClient 类被永久删除,这些语句

GamesClient.EXTRA_PLAYERS 
GamesClient.EXTRA_MIN_AUTOMATCH_PLAYERS 
GamesClient.EXTRA_MAX_AUTOMATCH_PLAYERS
GamesClient.EXTRA_INVITATION
GamesClient.STATUS_OK

必须替换为

Games.EXTRA_PLAYERS_IDS
Multiplayer.EXTRA_MIN_AUTOMATCH_PLAYERS
Multiplayer.EXTRA_MAX_AUTOMATCH_PLAYERS
Multiplayer.EXTRA_INVITATION
GamesStatusCodes.STATUS_OK

也可以删除该行:

import com.google.android.gms.games.GamesClient;

不需要导入GoogleApiClient,因为GameHelper.java中已经导入了。

在手动更改这些行并导入 Multiplayer 和 GamesStatusCodes 类后,我成功编译了代码。我希望这也能解决您的问题。

【讨论】:

我现在将研究实施这些更改。尝试扩展 BaseGameActivity 时是否也遇到错误?我收到一条错误消息,提示“无法解析类型 android.support.v4.app.FragmentActivity。它是从所需的 .class 文件中间接引用的” 还可能值得注意的是,导入 GamesClient 的 import 语句可以删除,如果需要,可以替换为 import com.google.android.gms.common.api.GoogleApiClient; 就我而言,FragmentActivity 没有问题。也许您应该检查您的库或更新它们。

以上是关于实施 Google Play 游戏时出错的主要内容,如果未能解决你的问题,请参考以下文章

实施 Google Play 游戏服务 - 如何让用户登录

Google Play 游戏中的成就不起作用

Google Play 游戏服务警报:“检测到错误的实施”

Google Play 游戏 C++ SDK 示例失败,找不到库“ButtonClickerNativeActivity”

Google Play 游戏服务

提交到 Google Play 时出错 - Android 应用程序 [关闭]