屏幕旋转无法启动活动空指针异常

时间:2012-03-08 18:42:58

标签: android exception orientation

当我在横向模式下运行我的应用程序时,它没有任何问题,也没有任何问题在纵向模式下,直到我尝试将项目添加到我的一个列表,同时仍处于纵向模式,其中我的应用程序崩溃。 / p>

关于如何解决这个问题的任何想法?

这是我在logcat中得到的错误....

03-08 13:30:50.201: D/AndroidRuntime(554): Shutting down VM
03-08 13:30:50.201: W/dalvikvm(554): threadid=1: thread exiting with uncaught exception (group=0x40014760)
03-08 13:30:50.229: E/AndroidRuntime(554): FATAL EXCEPTION: main
03-08 13:30:50.229: E/AndroidRuntime(554): java.lang.RuntimeException: Unable to start activity  ComponentInfo{com.ATG.C3FactSystemTabbed/com.ATG.EditActivities.AmenitiesEditActivity}: java.lang.NullPointerException
03-08 13:30:50.229: E/AndroidRuntime(554):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1748)
03-08 13:30:50.229: E/AndroidRuntime(554):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1764)
03-08 13:30:50.229: E/AndroidRuntime(554):  at android.app.ActivityThread.access$1500(ActivityThread.java:122)
03-08 13:30:50.229: E/AndroidRuntime(554):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1002)
03-08 13:30:50.229: E/AndroidRuntime(554):  at android.os.Handler.dispatchMessage(Handler.java:99)
03-08 13:30:50.229: E/AndroidRuntime(554):  at android.os.Looper.loop(Looper.java:132)
03-08 13:30:50.229: E/AndroidRuntime(554):  at android.app.ActivityThread.main(ActivityThread.java:4025)
03-08 13:30:50.229: E/AndroidRuntime(554):  at java.lang.reflect.Method.invokeNative(Native Method)
03-08 13:30:50.229: E/AndroidRuntime(554):  at java.lang.reflect.Method.invoke(Method.java:491)
03-08 13:30:50.229: E/AndroidRuntime(554):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
03-08 13:30:50.229: E/AndroidRuntime(554):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
03-08 13:30:50.229: E/AndroidRuntime(554):  at dalvik.system.NativeStart.main(Native Method)
03-08 13:30:50.229: E/AndroidRuntime(554): Caused by: java.lang.NullPointerException
03-08 13:30:50.229: E/AndroidRuntime(554):  at com.ATG.EditActivities.AmenitiesEditActivity.registerButtonListenersAndSetDefaultText(AmenitiesEditActivity.java:68)
03-08 13:30:50.229: E/AndroidRuntime(554):  at com.ATG.EditActivities.AmenitiesEditActivity.onCreate(AmenitiesEditActivity.java:61)
03-08 13:30:50.229: E/AndroidRuntime(554):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
03-08 13:30:50.229: E/AndroidRuntime(554):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1712)
03-08 13:30:50.229: E/AndroidRuntime(554):  ... 11 more

这是抛出异常的行

btnSave.setOnClickListener(new View.OnClickListener(){      <-------
        @Override
        public void onClick(View v){
         . . . . . 
        }
  });

这只是在我处于纵向模式时抛出,除非我在尝试向列表添加内容之前更改方向,否则它不会被抛出。如果我已经打开视图以添加内容,无论我如何更改方向,它都不会强制关闭。

好吧所以我再次检查了文件,我在不同的xml文件中引用的按钮有不同的名称。换句话说,在风景中我正在调用按钮btnSave而在另一个我称之为btnAmenitiesSave。问题解决了,谢谢大家!!!!!!

1 个答案:

答案 0 :(得分:0)

btnSave以纵向设置为null

这意味着:

  • 未分配btnSave(无btnSave = findViewById(....)
  • the_id中指定的身份btnSave = findViewById(R.id.the_id)在portait布局中不存在