当按下电源按钮锁定屏幕并再次按下以解锁屏幕时,应用程序崩溃。 scren解锁后应用程序崩溃。
这是我在logcat中的stackTress:
05-09 18:46:57.254: E/AndroidRuntime(25354): FATAL EXCEPTION: main
05-09 18:46:57.254: E/AndroidRuntime(25354): java.lang.NullPointerException
05-09 18:46:57.254: E/AndroidRuntime(25354): at org.andengine.ui.activity.BaseGameActivity.onResumeGame(BaseGameActivity.java:222)
05-09 18:46:57.254: E/AndroidRuntime(25354): at org.andengine.ui.activity.BaseGameActivity$4.run(BaseGameActivity.java:373)
05-09 18:46:57.254: E/AndroidRuntime(25354): at android.os.Handler.handleCallback(Handler.java:615)
05-09 18:46:57.254: E/AndroidRuntime(25354): at android.os.Handler.dispatchMessage(Handler.java:92)
05-09 18:46:57.254: E/AndroidRuntime(25354): at android.os.Looper.loop(Looper.java:137)
05-09 18:46:57.254: E/AndroidRuntime(25354): at android.app.ActivityThread.main(ActivityThread.java:4744)
05-09 18:46:57.254: E/AndroidRuntime(25354): at java.lang.reflect.Method.invokeNative(Native Method)
05-09 18:46:57.254: E/AndroidRuntime(25354): at java.lang.reflect.Method.invoke(Method.java:511)
05-09 18:46:57.254: E/AndroidRuntime(25354): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
05-09 18:46:57.254: E/AndroidRuntime(25354): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
05-09 18:46:57.254: E/AndroidRuntime(25354): at dalvik.system.NativeStart.main(Native Method)
BaseGameActivityClass的onResumeGame()方法的Nullpointer异常。
我在清单
的“活动”标签中添加了这一行 android:configChanges="orientation|keyboard|keyboardHidden"
在我的GameActivity中扩展了BaseGameActivity我添加了这个
@Override
public void onPause() {
super.onPause();
mEngine.stop();
}
@Override
protected void onResume() {
// The activity has become visible (it is now "resumed").
super.onResume();
mEngine.start();
}
有什么问题? 我该怎么做才能阻止电源按钮问题上的游戏崩溃?
答案 0 :(得分:2)
每当调用onResume()方法时,它会再次重新创建所有资源。 所以在你的onResume()方法调用时,控制器没有找到mEngine实例。因此,它会触发错误NullPointerException。
onPause()方法的任务是停止音乐和声音,onResume()方法是再次播放声音和音乐。这些方法在Android游戏开发中不用于任何其他目的,特别是在AndEngine中。