Проблема общего пула "Больше предметов переработано, чем получено" - PullRequest
0 голосов
/ 27 декабря 2011

Я использую общий пул для добавления спрайтов в сцену в AndEngine с интервалом в 1 секунду.

По мере добавления спрайтов я перерабатываю их, когда они сталкиваются с определенными объектами.

Я продолжаю получать эту ошибку

12-27 12:45:07.890: E/AndEngine(25299): More items recycled than obtained!
12-27 12:45:07.890: E/AndEngine(25299): java.lang.Exception
12-27 12:45:07.890: E/AndEngine(25299):     at org.anddev.andengine.util.Debug.e(Debug.java:117)
12-27 12:45:07.890: E/AndEngine(25299):     at org.anddev.andengine.util.Debug.e(Debug.java:107)
12-27 12:45:07.890: E/AndEngine(25299):     at org.anddev.andengine.util.pool.GenericPool.recyclePoolItem(GenericPool.java:127)
12-27 12:45:07.890: E/AndEngine(25299):     at com.fttech.hungryhippos.Arcade_MainGame$1.onUpdate(Arcade_MainGame.java:738)

Это не вызывает закрытие Force, но я волнуюсь, что это может вызвать проблемы позже.

Это ошибка, о которой я должен беспокоиться?

Также вот как я перерабатываю свои вещи ..

@Override
protected void onHandleRecycleItem(final Sprite pItem) {
    pItem.setVisible(false);
    pItem.setIgnoreUpdate(true);

}

1 Ответ

3 голосов
/ 27 декабря 2011

Из herpderp на форумах AndEngine:

Это означает, что там написано.В источнике GenericPool есть переменная-член, которая увеличивается при вызове receivePoolItem и уменьшается при вызове recyclePoolItem.Если оно падает ниже нуля - другими словами, если recyclePoolItem вызывается больше раз, чем getPoolItem - то вы получите это сообщение об ошибке.Вам просто нужно просмотреть свой код, в частности, где вы перерабатываете и получать элементы пула, и попытаться выяснить, почему recyclePoolItem вызывается слишком часто.

...