gpt4 book ai didi

android - AndEngine错误使用定时器

转载 作者:行者123 更新时间:2023-11-29 21:48:51 25 4
gpt4 key购买 nike

我在 AndEngine 中使用了一个计时器,但它向我抛出这个错误。

这是抛出错误的方法:

public void onPopulateScene(Scene pScene,
OnPopulateSceneCallback pOnPopulateSceneCallback) throws Exception {
mEngine.registerUpdateHandler(new TimerHandler(3f,
new ITimerCallback() {
@Override
public void onTimePassed(final TimerHandler pTimerHandler) {
SceneManager.getInstance().createMenuScene();
mEngine.unregisterUpdateHandler(pTimerHandler);
}
}));
pOnPopulateSceneCallback.onPopulateSceneFinished();
}

我已经在 Engine 类中跟踪到这一行:

        } finally {
this.mEngineLock.unlock();
}

有人能帮忙吗?

02-21 03:39:55.056: E/AndroidRuntime(27796): FATAL EXCEPTION: UpdateThread
02-21 03:39:55.056: E/AndroidRuntime(27796): java.lang.NullPointerException
02-21 03:39:55.056: E/AndroidRuntime(27796): at edu.ian.andenginetest.SceneManager.disposeSplashScene(SceneManager.java:50)
02-21 03:39:55.056: E/AndroidRuntime(27796): at edu.ian.andenginetest.SceneManager.createMenuScene(SceneManager.java:57)
02-21 03:39:55.056: E/AndroidRuntime(27796): at edu.ian.andenginetest.MainActivity$1.onTimePassed(MainActivity.java:73)
02-21 03:39:55.056: E/AndroidRuntime(27796): at org.andengine.engine.handler.timer.TimerHandler.onUpdate(TimerHandler.java:98)
02-21 03:39:55.056: E/AndroidRuntime(27796): at org.andengine.engine.handler.UpdateHandlerList.onUpdate(UpdateHandlerList.java:47)
02-21 03:39:55.056: E/AndroidRuntime(27796): at org.andengine.engine.Engine.onUpdateUpdateHandlers(Engine.java:597)
02-21 03:39:55.056: E/AndroidRuntime(27796): at org.andengine.engine.Engine.onUpdate(Engine.java:585)
02-21 03:39:55.056: E/AndroidRuntime(27796): at org.andengine.engine.LimitedFPSEngine.onUpdate(LimitedFPSEngine.java:56)
02-21 03:39:55.056: E/AndroidRuntime(27796): at org.andengine.engine.Engine.onTickUpdate(Engine.java:548)
02-21 03:39:55.056: E/AndroidRuntime(27796): at org.andengine.engine.Engine$UpdateThread.run(Engine.java:820)

这是我的代码的 github 提交链接:https://github.com/mkaziz/EECS-499---Android-Shooter/commit/63dab77fe43f70543b06ea6436249c8401b339bc

最佳答案

根据您的code on github (你离开了 AndEngine forum ,但不在这里):
在您的 MainActivityonCreateScene() 函数中,
您调用 SceneManagercreateSplashScene() 执行一次 AndEngine onCreateSceneFinished() 回调。
并且,返回到 MainActivity 中的 OnCreateScene() 后,您再次执行相同的回调。
如果你跟踪AndEngine代码,你会知道这会导致MainActivity中的onPopulateScene()也执行两次。因此,您将创建两个计时器实例,并在第二个计时器处理初始屏幕时获得 NPE。

关于android - AndEngine错误使用定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14998956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com