OpenGL теряет поверхность после активации биллинга в приложении

Это производный вопрос от вопроса, который я разместил здесь: В App BIlling проблемы с ожидающими намерениями и переключением действий

Проблема, с которой я столкнулся сейчас, напрямую связана со всей информацией по этому вопросу, но, скорее всего, касается совершенно другой темы (OpenGL) и поэтому нуждается в этом новом вопросе. Но, пожалуйста, обратитесь к коду, размещенному там для вашей информации.

Основная проблема заключается в следующем:

У меня есть игра Andengine с биллингом в приложении Google. Когда пользователь нажимает кнопку «купить», вы получаете изящное маленькое всплывающее окно с Marketplace, в котором рассматривается ваша транзакция. Это всплывающее окно отлично работает, когда пользователь предоставляет правильную информацию о кредитной карте, с него взимается плата за транзакцию, и я получаю деньги. К сожалению, после завершения транзакции (в этом случае завершение означает либо взимание платы за нее, либо решение не покупать ее, в любом случае они завершают действие в отношении всплывающего окна Market) они попадают на черный экран, который остается черным до тех пор, пока игра тайм-аут или они принудительно завершают работу.

Анализируя LogCat, я считаю, что сузил проблему до поверхности OpenGL, из-за которой моя активность Andengine теряется, и поэтому игра не может загрузить какие-либо соответствующие ресурсы. Я ничего не знаю об OpenGL, поэтому понятия не имею, как это исправить. Все, что я хочу, это чтобы простая деятельность Andengine возобновлялась или перезапускалась после того, как незавершенное намерение, запущенное биллингом в приложении, сделало свое дело. Я считаю, что это вызывает ошибку, хотя полный дамп LogCat находится в вопросе, указанном выше:

06-16 11:20:23.635: DEBUG/dalvikvm(3807): GC_EXPLICIT freed 53K, 45% free 3710K/6663K, external 1K/513K, paused 102ms
06-16 11:20:23.885: ERROR/Surface(3807): surface (identity=158) is invalid, err=-19 (No such device)
06-16 11:20:23.905: ERROR/Surface(3807): surface (identity=158) is invalid, err=-19 (No such device)
06-16 11:20:23.905: ERROR/Surface(3807): surface (identity=158) is invalid, err=-19 (No such device)
06-16 11:20:23.905: ERROR/Adreno200-EGL(3807): egliSwapWindowSurface: unable to dequeue native buffer

Пожалуйста, дайте мне знать, если вы можете помочь, скорее всего, вам понадобится опыт работы с OpenGL на Android и желательно базовые знания Andengine (или, по крайней мере, как он работает с OpenGL). Я не делаю ничего слишком сложного с графикой, так что это не проблема, экран, который я хочу возобновить (мой «Витрина магазина»), состоит не более чем из различных спрайтов и минимального количества текста.

Спасибо


person Sam Stern    schedule 18.06.2011    source источник
comment
Возможно, вам повезет спросить напрямую у разработчиков AndEngine. Я использую GLSurface с API биллинга Android без проблем.   -  person Miguel Morales    schedule 18.06.2011


Ответы (1)


В конце концов, на него был дан ответ в связанном вопросе, извините даже за публикацию этого вопроса (я просто подумал, что это может быть совершенно новая проблема).

см.: Проблемы с биллингом приложений с ожидающими намерениями и переключением действий

person Sam Stern    schedule 20.06.2011