GoogleApiClient 和 Drive.API 错误

Posted

技术标签:

【中文标题】GoogleApiClient 和 Drive.API 错误【英文标题】:GoogleApiClient and Drive.API error 【发布时间】:2015-03-09 16:24:24 【问题描述】:

我正在尝试在我的 android 游戏中启用保存的游戏。但是,我发现如果我打电话

builder.addApi(Drive.API);
builder.addScope(Drive.SCOPE_APPFOLDER);

“选择帐户”对话框根本没有显示,因此我无法登录。

取消注释这两行并且一切正常(登录、排行榜、成就),但保存游戏除外。尝试获取快照会给我以下错误

01-11 23:30:14.549  18072-18488/? E/Evader﹕ Must include Drive.SCOPE_APPFOLDER to use snapshots!
    java.lang.IllegalStateException: Must include Drive.SCOPE_APPFOLDER to use snapshots!

这是否已弃用?这是https://developers.google.com/games/services/android/savedgames上推荐的方法

如果相关,我正在使用 LibGDX 和 BaseGameUtils

【问题讨论】:

【参考方案1】:

如果您在问题中包含的代码是准确的,那么问题在于您如何调用 Builder 类。

客户端是使用builder模式构建的,所以在创建builder实例时需要更新上一次调用的返回值,如:(注意只有一个分号)。

    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addApi(Games.API).addScope(Games.SCOPE_GAMES)
            .addApi(Drive.API).addScope(Drive.SCOPE_APPFOLDER)
            .build();

【讨论】:

只要我添加Api(Drive.API),“选择帐户”对话框就不会显示。 那么,如果你只使用范围 scope_appfolder 和 scope_games 是否有效?【参考方案2】:

问题不在于代码。这是电话(测试设备)。 我在另一台设备上进行了测试,它完美无缺。 我更新了已卸载的 Google Play 商店和 Google Play 服务更新,并重新安装了它们,一切正常。

TLDR - 在多个设备上进行测试。我不完全确定为什么我的设备上只发生了我的游戏,但在执行上述操作后,一切正常。

感谢克莱顿威尔金森

【讨论】:

以上是关于GoogleApiClient 和 Drive.API 错误的主要内容,如果未能解决你的问题,请参考以下文章

GoogleApiClient 和 Drive.API 错误

分离 Activity 和 GoogleApiClient 的关注点

捕捉 GoogleApiClient.disconnect() 回调

GoogleApiClient 在调用 onConnected 函数后抛出“GoogleApiClient 尚未连接”

GoogleApiClient 中的 getLastLocation() 始终为空

Android - GoogleApiClient 实例在 IntentService 中的 .connect() 和 onConnected() 之间丢失