【问题标题】:Google Play Games Services crashes briefly after loadPlayerCenteredScores在 loadPlayerCenteredScores 后,Google Play 游戏服务短暂崩溃
【发布时间】:2013-08-11 22:36:24
【问题描述】:

我正在使用 Google Play 游戏服务在 android 中编写游戏。我想让其他玩家使用 GamesClient.loadPlayerCenteredScores。问题与获取个人资料图像有关。我使用getScoreHolderIconImageUri() 并使用ImageManager.loadImage 获取URI。我的图像加载侦听器永远不会被调用,并且游戏服务在调用后一秒钟停止工作,游戏正常继续(好像游戏服务已断开连接),除了警告之外,我在日志中没有收到任何错误。 这是代码:

public void PlayersLoader(){
    getMainActivity().getGamesClient().loadPlayerCenteredScores(
            new OnLeaderboardScoresLoadedListener(){
                @Override
                public void onLeaderboardScoresLoaded(int statusCode, LeaderboardBuffer leaderboard, LeaderboardScoreBuffer scores){
                    if(statusCode==0){
                        LeaderboardScore score;
                        String playerId=getMainActivity().getGamesClient().getCurrentPlayer().getPlayerId();
                        ImageManager imMan=ImageManager.create(getContext());
                        for(int i=0;i<scores.getCount();i++){
                            score=scores.get(i);
                            String name;
                            if(score.getScoreHolder().getPlayerId().equals(playerId)){
                                name=getResources().getString(R.string.your_best);
                            }
                            else{
                                name=score.getScoreHolderDisplayName();
                            }
                            Uri imuri=score.getScoreHolderIconImageUri();
                            if(imuri!=null){
                                imMan.loadImage(new ImageLoaded(name),imuri);
                            }
                        }
                        System.out.println("Finish");
                        scores.close();
                        leaderboard.close();
                    }
                }
            },getResources().getString(R.string.HighScores),LeaderboardVariant.TIME_SPAN_ALL_TIME,
            LeaderboardVariant.COLLECTION_SOCIAL,10);
}

}
class ImageLoaded implements OnImageLoadedListener{
String mName;
public ImageLoaded(String name){
    mName=new String(name);

    System.out.println(mName);
            //This does get printed out (the names of the players)
}
@Override
public void onImageLoaded(Uri uri, Drawable drawable){

    System.out.println("imageLoaded"); //This never gets printed out

}
}

这是我在日志中得到的:

//Your Best
//Player 1 Name
//Player 2 Name
//Finished
//Games Services has stopped working dialog in phone, when I click OK, this warning shows:
//*** Unexpectedly disconnected. Severing remaining connections.

如果我删除 ImageManager 调用并仅打印出名称,它们会正确打印出来,并且不会停止工作。

我不知道发生了什么,我很绝望。

编辑 即使我评论了这一行:

imMan.loadImage(new ImageLoaded(name),imuri);

错误发生了。 只有当我删除它时它才会停止发生:

Uri imuri=score.getScoreHolderIconImageUri(); 太奇怪了!即使我不对imuri 做任何事情。

编辑我发布了问题here。这似乎是谷歌播放服务的一个错误。当然他们会尽快修复它!

【问题讨论】:

    标签: android google-play-games


    【解决方案1】:

    听起来您可能遇到了public bug tracker 中描述的相同问题。如果是这样,一个修复程序是入站的,事情应该会再次起作用 Real Soon Now[tm]。

    【讨论】:

    • 是的!我实际上是发布该问题的人。他们回答后我忘了在这里添加它。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多