应用程序在旋转android设备时停止

应用程序在旋转android设备时停止,android,Android,我的应用程序中有五个选项卡,分别是A、B、C、D和E。我的问题是,当将选项卡从B更改为任何其他选项卡并将设备旋转到横向模式或纵向模式时,应用程序停止 错误日志为 08-22 11:27:22.835:E/AndroidRuntime(5992):致命异常:main 08-22 11:27:22.835:E/AndroidRuntime(5992):java.lang.RuntimeException:无法启动活动组件信息{com.nv.netmdapp1/com.nv.netmdapp1.Hom

我的应用程序中有五个选项卡,分别是A、B、C、D和E。我的问题是,当将选项卡从B更改为任何其他选项卡并将设备旋转到横向模式或纵向模式时,应用程序停止

错误日志为

08-22 11:27:22.835:E/AndroidRuntime(5992):致命异常:main 08-22 11:27:22.835:E/AndroidRuntime(5992):java.lang.RuntimeException:无法启动活动组件信息{com.nv.netmdapp1/com.nv.netmdapp1.Home}:java.lang.NullPointerException 08-22 11:27:22.835:E/AndroidRuntime(5992):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) 08-22 11:27:22.835:E/AndroidRuntime(5992):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 08-22 11:27:22.835:E/AndroidRuntime(5992):在android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3351) 08-22 11:27:22.835:E/AndroidRuntime(5992):在android.app.ActivityThread.access$700(ActivityThread.java:123) 08-22 11:27:22.835:E/AndroidRuntime(5992):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1151) 08-22 11:27:22.835:E/AndroidRuntime(5992):位于android.os.Handler.dispatchMessage(Handler.java:99) 08-22 11:27:22.835:E/AndroidRuntime(5992):在android.os.Looper.loop(Looper.java:137) 08-22 11:27:22.835:E/AndroidRuntime(5992):位于android.app.ActivityThread.main(ActivityThread.java:4424) 08-22 11:27:22.835:E/AndroidRuntime(5992):位于java.lang.reflect.Method.Invokenactive(本机方法) 08-22 11:27:22.835:E/AndroidRuntime(5992):在java.lang.reflect.Method.invoke(Method.java:511) 08-22 11:27:22.835:E/AndroidRuntime(5992):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 08-22 11:27:22.835:E/AndroidRuntime(5992):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 08-22 11:27:22.835:E/AndroidRuntime(5992):在dalvik.system.NativeStart.main(本机方法) 08-22 11:27:22.835:E/AndroidRuntime(5992):由以下原因引起:java.lang.NullPointerException 08-22 11:27:22.835:E/AndroidRuntime(5992):位于com.nv.netmdapp1.ScheduleDailyView.onActivityCreated(ScheduleDailyView.java:89) 08-22 11:27:22.835:E/AndroidRuntime(5992):在android.support.v4.app.Fragment.performActivityCreated(Fragment.java:1468)

下面给出了Java代码

已创建ActivityState上的公共无效(Bundle savedInstanceState){ //TODO自动生成的方法存根 super.onActivityCreated(savedInstanceState); dailyFragment=(SherlockFragment)Fragment.instantiate(appContext,AppointmentDailyView.class.getName(),参数); weeklyFragment=(SherlockFragment)Fragment.instantiate(appContext,AppointmentWeeklyView.class.getName(),参数)

单击选项卡C时,将执行此部分。但在旋转设备时,控制转到选项卡B的onActivityCreated()。
此处出现空指针异常line ScheduleDailyView.java:89与选项卡B关联。但在旋转设备时,控件从选项卡C和D转到此文件。原因是什么?

旋转设备会重新启动应用程序:

调用OnActivityCreated方法时,您将在此处得到一个空指针异常:

Caused by: java.lang.NullPointerException
08-20 16:54:43.319: E/AndroidRuntime(5646):     at com.nv.netmdapp1.ScheduleDailyView.onActivityCreated(ScheduleDailyView.java:89)

检查此处的空值,也可以通过处理配置更改来避免在轮换时重新启动活动。

在android清单中添加
android:configChanges=“orientation”
,它处理应用程序中的方向更改事件

舱单:

 <activity
        android:name=".MainActivity"
        android:label="@string/title_activity_main" 
        android:configChanges="orientation"
        >

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>


希望对您有所帮助。

给我们一些代码。您在com.nv.netmdapp1.ScheduleDailyView.onActivityCreated(ScheduleDailyView.java:89)上有一个NPE ScheduleDailyView.java:89NullPointerException原因是NullPointerException。某些对象为null,您尝试使用它。
原因:java.lang.NullPointerException 08-20 16:54:43.319:E/AndroidRuntime(5646):在com.nv.netmdapp1.ScheduleDailyView.onActivityCreated(ScheduleDailyView.java:89)08-20
。请注意,
89
是行号。编辑了我的问题。请查看。
 <activity
        android:name=".MainActivity"
        android:label="@string/title_activity_main" 
        android:configChanges="orientation"
        >

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>