暂停和肖像不会导致景观崩溃

时间:2014-07-24 19:44:41

标签: android multithreading landscape onpause

大家好,

我试图在网上找到这个问题的答案,但我找不到解决问题的方法......

所以也许你们中的一些人知道我能做些什么来解决它。

所以我有一个游戏(表面视图和线程吸引了cavnas和所有那些游戏性的东西)并且在肖像模式下一切正常,但我想让我的游戏以横向模式播放,所以我改变了模式在android清单中如此:

android:screenOrientation="landscape"

哪个工作正常,一切都是一样的,除非我想关闭活动(调用onPause方法)。当我收到应用程序需要强制关闭的错误。

现在有些人通过添加

解决了他们的问题
 android:configChanges="orientation|screenSize|keyboard|keyboardHidden|navigation"

对于他们的清单文件,但这对我来说不起作用,我仍然继续NullPointerException

这是logcat:

07-24 21:27:12.160: E/AndroidRuntime(5272): FATAL EXCEPTION: main
07-24 21:27:12.160: E/AndroidRuntime(5272): java.lang.RuntimeException: Unable to pause activity {com.example.fishtruck/com.example.fishtruck.Start}: java.lang.NullPointerException
07-24 21:27:12.160: E/AndroidRuntime(5272):     at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2706)
07-24 21:27:12.160: E/AndroidRuntime(5272):     at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2662)
07-24 21:27:12.160: E/AndroidRuntime(5272):     at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:2640)
07-24 21:27:12.160: E/AndroidRuntime(5272):     at android.app.ActivityThread.access$800(ActivityThread.java:123)
07-24 21:27:12.160: E/AndroidRuntime(5272):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1154)
07-24 21:27:12.160: E/AndroidRuntime(5272):     at android.os.Handler.dispatchMessage(Handler.java:99)
07-24 21:27:12.160: E/AndroidRuntime(5272):     at android.os.Looper.loop(Looper.java:137)
07-24 21:27:12.160: E/AndroidRuntime(5272):     at android.app.ActivityThread.main(ActivityThread.java:4424)
07-24 21:27:12.160: E/AndroidRuntime(5272):     at java.lang.reflect.Method.invokeNative(Native Method)
07-24 21:27:12.160: E/AndroidRuntime(5272):     at java.lang.reflect.Method.invoke(Method.java:511)
07-24 21:27:12.160: E/AndroidRuntime(5272):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:825)
07-24 21:27:12.160: E/AndroidRuntime(5272):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:592)
07-24 21:27:12.160: E/AndroidRuntime(5272):     at dalvik.system.NativeStart.main(Native Method)
07-24 21:27:12.160: E/AndroidRuntime(5272): Caused by: java.lang.NullPointerException
07-24 21:27:12.160: E/AndroidRuntime(5272):     at com.example.fishtruck.Start.onPause(Start.java:113)
07-24 21:27:12.160: E/AndroidRuntime(5272):     at android.app.Activity.performPause(Activity.java:4563)
07-24 21:27:12.160: E/AndroidRuntime(5272):     at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1197)
07-24 21:27:12.160: E/AndroidRuntime(5272):     at android.app.ActivityThread.performPauseActivity(ActivityThread.java:2693)
07-24 21:27:12.160: E/AndroidRuntime(5272):     ... 12 more

并且(不确定是否相关,但这是什么)这里是我如何调用onPause方法:

view.stopThread();
this.finish(); //this is called in the activity and view = surfaceView

stopThread()方法的调用如下:

 if(thread!=null){
          thread.interrupt();
          thread.setRunning(false);
          isStopped = true;
          thread = null; 
      }

1 个答案:

答案 0 :(得分:0)

你在Start.java的第113行有什么对象?你在那里的对象没有正确启动(它为空),这会使你的应用程序崩溃。