android — SEGV_ACCERR после создания комнаты игровых сервисов Google Play

Я пишу игру с Cocos2d-x и Google Play Game Services для работы в сети.
Я создаю комнату реального времени с этим кодом:

 auto scene = BattleScene::createScene();
BattleScene *layer;
if (scene->getChildByName("layer")) {
layer = static_cast<BattleScene *>(scene->getChildByName("layer"));
} else {
log("Cannot get layer!");
return;
}
log("Creating room...");
auto gameServices = StateManager::getGameServices();
gpg::RealTimeRoomConfig config = gpg::RealTimeRoomConfig::Builder()
.SetMinimumAutomatchingPlayers(1)
.SetMaximumAutomatchingPlayers(1)
.Create();
log("config created");
gameServices->RealTimeMultiplayer().CreateRealTimeRoom(
config, layer,
[&](gpg::RealTimeMultiplayerManager::RealTimeRoomResponse const
&response) {
log("created a room %d", response.status);
if (gpg::IsSuccess(response.status)) {
gameServices->RealTimeMultiplayer().ShowWaitingRoomUI(
response.room, 1,
[&](gpg::RealTimeMultiplayerManager::
WaitingRoomUIResponse const &wait_response) {
log("WaitingRoomUIResponse");
if (IsSuccess(wait_response.status)) {
log("Game started");
Director::getInstance()->replaceScene(scene);
}
});
} else
log("Error1");
});

Но затем (когда подключен второй плеер) приложение завершается с этим журналом:

signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 00584918
Stack frame #00  pc 00584918  [heap]
Stack frame #01  pc 004d4526  /data/data/com.railon.luck/lib/libMyGame.so: Routine std::_Function_handler<void (gpg::RealTimeRoom const&, gpg::MultiplayerParticipant const&), gpg::RealTimeEventListenerHelperImpl::RealTimeEventListenerHelperImpl(gpg::IRealTimeEventListener*)::{lambda(gpg::RealTimeRoom const&, gpg::MultiplayerParticipant const&)#5}>::_M_invoke(std::_Any_data const&, gpg::RealTimeRoom const&, gpg::MultiplayerParticipant const&) at libgcc2.c:?
Stack frame #02  pc 004ec9c8  /data/data/com.railon.luck/lib/libMyGame.so (_ZNKSt8functionIFvRKN3gpg12RealTimeRoomERKNS0_22MultiplayerParticipantEEEclES3_S6_): Routine std::function<void (gpg::RealTimeRoom const&, gpg::MultiplayerParticipant const&)>::operator()(gpg::RealTimeRoom const&, gpg::MultiplayerParticipant const&) const at ??:?
Stack frame #03  pc 004eca08  /data/data/com.railon.luck/lib/libMyGame.so: Routine std::_Function_handler<void (), gpg::RealTimeEventListenerHelperImpl::WrappedRealTimeEventListener::OnParticipantStatusChanged(gpg::RealTimeRoom const&, gpg::MultiplayerParticipant const&)::{lambda()#1}>::_M_invoke(std::_Any_data const&) at libgcc2.c:?
Stack frame #04  pc 00509f6a  /data/data/com.railon.luck/lib/libMyGame.so: Routine gpg::PlatformExecuteOperation(std::function<void ()> const&) at libgcc2.c:?

Проблема, кажется, в OnParticipantStatusChanged Функ в BattleSceneClass, но есть ошибка, даже если эта функция пуста
есть предложения?
Да, BattleScene иметь IRealTimeEventListener у родителей.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]