0

这与其他人在这里遇到的问题非常相似,只是解决他们问题的解决方案不是我的问题。(注意:我正在使用 libgdx 来开发这个,但我很确定这与这个问题无关,因为签名部分正在工作)

@Override
public void startQuickGame() {
    boolean signedIn = getSignedIn();
    System.out.println(signedIn);
     // automatch criteria to invite 1 random automatch opponent.  
    // You can also specify more opponents (up to 3). 
    Bundle am = RoomConfig.createAutoMatchCriteria(1, 4, 0);

    // build the room config:
    RoomConfig.Builder roomConfigBuilder = makeBasicRoomConfigBuilder();
    roomConfigBuilder.setAutoMatchCriteria(am);
    RoomConfig roomConfig = roomConfigBuilder.build();

    // create room:
    aHelper.getGamesClient().createRoom(roomConfig);
}

这里是我检查房间何时创建的地方。

final static int RC_WAITING_ROOM = 10002;
@Override
public void onRoomCreated(int statusCode, Room room) {
    if (statusCode != GamesClient.STATUS_OK) {
        System.out.println(statusCode);
        return;
    }
    // get waiting room intent
    Intent i = aHelper.getGamesClient().getRealTimeWaitingRoomIntent(room, Integer.MAX_VALUE);
    startActivityForResult(i, RC_WAITING_ROOM);
}

我得到的状态码是 6 对应于

STATUS_NETWORK_ERROR_OPERATION_FAILED

在它创建房间之前我肯定已经登录,因为 signedIn 总是正确的。

我在开发控制台上启用了多人游戏

我的包名是匹配的,我什至在我的 api 控制台中看到了这个。

游戏.rooms.create

错误信息

4

2 回答 2

1

弄清楚了。误导性的 Javadoc 加上人为错误。

在此处输入图像描述

我认为第二个参数是指最大玩家数,而不是要邀请的最大玩家数,因此你 + 3 个其他人。

所以这是我的代码中的罪魁祸首= p

Bundle am = RoomConfig.createAutoMatchCriteria(1, 4, 0);

应该

Bundle am = RoomConfig.createAutoMatchCriteria(1, 3, 0);

现在它工作得很好=)

于 2013-09-26T16:47:42.923 回答
1

您是否通过自动选择名称来创建房间?还是选择您圈子中的某个人?

我还没有在最终版本中发布我的应用程序(几个月的 alpha/beta 测试,我已经接近了:)),但是当我创建房间时我邀请了不属于测试组的人,我得到错误 6 (事实上​​,我已经为发布版本创建了处理这种情况的方法。如果用户在发布时尝试创建房间时发生同样的错误)

如果自动选择工作正常,并且您已将选定的人员添加到您的测试电子邮件中,那么我收到错误 6 的唯一一次是网络出现问题(无论是我的还是谷歌的,不确定)但是它本质上是非常暂时的。

所以,我认为确保他们是您的测试组的一部分(甚至可能必须安装该应用程序,不确定那部分,因为我还没有测试过......要添加的新测试!),将是我将从哪里开始。

于 2013-09-20T02:04:26.983 回答