Google Play 游戏服务 - 无法解锁成就
Posted
技术标签:
【中文标题】Google Play 游戏服务 - 无法解锁成就【英文标题】:Google Play Game Service - Cannot unlock Achievements 【发布时间】:2014-07-08 11:08:23 【问题描述】:参考谷歌给出的quick start,我已经在我的游戏中实现了Google Play Game Service。
我已在“id.xml”文件中添加了成就 ID。我的游戏有大约 10 个成就。解锁我的成就的代码如下:
Games.Achievements.unlock(getApiClient(), "achievement_1_0");
'achievement_1_0' 是我的一项成就的字符串名称。
我的问题是,即使条件正确,我的成就也没有解锁。查看我的日志后,我从会话过滤器com.google.android.gms(Session Filter)
中得到了这个E/AchievementAgent(13528): Couldn't find local achievement to update for achievement ID achievement_1_0
对可能出了什么问题有任何想法吗?或者它是一个错误..???
【问题讨论】:
【参考方案1】:成就解锁代码如下:
Games.Achievements.unlock(getApiClient(), "your_achievement_id");
这里的成就 id 是您在 Google 游戏服务中创建成就时获得的 id。
那是在谷歌开发者控制台->游戏服务->你的应用程序->成就
希望这会对你有所帮助..
【讨论】:
感谢 Anu,如您所见,我已经将这行代码添加到我的项目中。希望您能帮助我解决我发布的日志报告以及我的问题。 您提供的 id 似乎是错误的。这就是为什么我解释了解锁功能的参数必须是什么。您应该在开发者控制台中将 'achievement_1_0' 替换为其 ID【参考方案2】:@Anu 100% 正确。您确实为您的成就使用了不正确的 ID。但是,使用游戏服务控制台中的代码来引用您的成就是一种非常糟糕的方式(而且很容易出错)。
引用成就的更好方法是使用游戏服务控制台中成就屏幕底部的Get resources
链接导出您的成就ID .然后将它们放置在您的应用程序资源中的 xml 文件中。看起来这就是您在问题中所指的内容(id.xml
文件),因此您可能已经完成了此步骤。
一旦 xml 文件就位,您就可以使用从控制台导出的描述性 ID 来参考您的成就。请按以下步骤操作:
activity.getBaseContext().getString( R.string.achievement_1_0 );
使用activity
的主活动并将xml 文件中的achievement_1_0
更改为成就的name
属性。 注意:achievement_1_0
不能是字符串(即不能像您当前的代码那样用引号括起来),因为它指的是字符串资源。
始终使用此方法来引用您的成就 - 不要硬编码来自控制台的字符串或代码,因为这会使您的代码更难维护。
【讨论】:
感谢 free3dom 的提示。 :)【参考方案3】:我在调试未发布的应用时遇到此错误。 我解决了将我的帐户/电子邮件添加为新测试人员的问题。
Google play console > Game Services > Testing > Add tester
【讨论】:
以上是关于Google Play 游戏服务 - 无法解锁成就的主要内容,如果未能解决你的问题,请参考以下文章