我正在使用通用池将精灵添加到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)
它不会导致力量关闭但我担心它可能会在以后引起问题。
这是我应该担心的错误吗?
这也是我如何回收我的物品..
@Override
protected void onHandleRecycleItem(final Sprite pItem) {
pItem.setVisible(false);
pItem.setIgnoreUpdate(true);
}
答案 0 :(得分:3)
来自Herpderp的AndEngine论坛:
这意味着它所说的。在GenericPool源代码中有一个成员 调用obtainPoolItem时递增的变量,并递减 何时调用recyclePoolItem。如果它低于零 - 在另一个 单词,如果调用recyclePoolItem的次数比obtainPoolItem多 叫 - 然后你得到那个错误信息。
这个问题没有简单的解决办法。你只需要看一下 您的代码,特别是您回收和获取池项目的位置, 并试图弄清楚为什么会经常调用recyclePoolItem。