2013-08-20 3 views
-2

У меня есть пять вкладок в моем приложении. Говорят, что проблема A, B, C, D и E.My заключается в том, что приложение останавливается при изменении вкладки с B на любые другие вкладки и вращении устройства в ландшафт режиме или портретном режиме.Применение Остановлено при вращении устройства Android

журнал ошибки

08-22 11: 27: 22,835: Е/AndroidRuntime (5992): неустранимые: Главный 08-22 11: 27: 22,835: Е/AndroidRuntime (5992): java.lang.RuntimeException: невозможно запустить Activity ComponentInfo {com.nv.netmdapp1/com.nv.netmdapp1.Home}: java.lang.NullPointerException 08-22 11: 27: 22.835: E/AndroidRuntime (5992): at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:1956) 08-22 11: 27: 22.835: E/AndroidRuntime (5992): at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:1981) 08-22 11: 27: 22.835: E/AndroidRuntime (5992): at android.app.Acti vityThread.handleRelaunchActivity (ActivityThread.java:3351) 08-22 11: 27: 22.835: E/AndroidRuntime (5992): at android.app.ActivityThread.access $ 700 (ActivityThread.java:123) 08-22 11:27 : 22.835: E/AndroidRuntime (5992): at android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1151) 08-22 11: 27: 22.835: E/AndroidRuntime (5992): at android.os.Handler .dispatchMessage (Handler.java:99) 08-22 11: 27: 22.835: E/AndroidRuntime (5992): at android.os.Looper.loop (Looper.java:137) 08-22 11: 27: 22.835 : E/AndroidRuntime (5992): at android.app.ActivityThread.main (ActivityThread.java:4424) 08-22 11: 27: 22.835: E/AndroidRuntime (5992): at java.lang.reflect.Method.invokeNative (Родной метод) 08-22 11: 27: 22.835: E/AndroidRuntime (5992): at java.lang.reflect.Method.invoke (Method.java:5 11) 08-22 11: 27: 22.835: E/AndroidRuntime (5992): at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:784) 08-22 11: 27: 22.835: E/AndroidRuntime (5992): at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:551) 08-22 11: 27: 22.835: E/AndroidRuntime (5992): at dalvik.system.NativeStart. main (Native Method) 08-22 11: 27: 22.835: E/AndroidRuntime (5992): вызвано: java.lang.NullPointerException 08-22 11: 27: 22.835: E/AndroidRuntime (5992): at com. nv.netmdapp1.ScheduleDailyView.onActivityCreated (ScheduleDailyView.java:89) 08-22 11: 27: 22.835: E/AndroidRuntime (5992): at android.support.v4.app.Fragment.performActivityCreated (Fragment.java:1468)

Код Java приведен ниже.

общественного недействительными onActivityCreated (Пачка savedInstanceState) {// TODO автоматическая генерация метод заглушки super.onActivityCreated (savedInstanceState); dailyFragment = (SherlockFragment) Fragment.instantiate (appContext, AppointmentDailyView.class.getName(), аргументы); weeklyFragment = (Шерлок Фрагмент) Fragment.instantiate (appContext, AppointmentWeeklyView.class.getName(), аргументы);

FragmentTransaction ft = getFragmentManager().beginTransaction(); 
    Fragment lastFrag = getFragmentManager().findFragmentByTag("appointmentFrag"); 
    if(lastFrag!=null) 
     ft.remove(lastFrag); 
    ft.replace(R.id.ll_appointment_layout, dailyFragment); 
    ft.commit(); 
} 
@Override 
public void onClick(View view) 
{ 
    FragmentTransaction ft = getFragmentManager().beginTransaction(); 
    Fragment lastFrag = getFragmentManager().findFragmentByTag("appointmentFrag"); 
    if(lastFrag!=null) 
     ft.remove(lastFrag); 
    if(view==btnDaily) 
     ft.replace(R.id.ll_appointment_layout, dailyFragment); 
    else 
     ft.replace(R.id.ll_appointment_layout, weeklyFragment); 
    ft.commit(); 
} 

При нажатии Tab C эта часть executed.But при вращении устройства управления переходит к onActivityCreated() из B. Вкладки Здесь исключения нулевого указателя происходящей линии ScheduleDailyView.java:89 связан с Tab B . Но при вращении управление устройством переходит от вкладок C и D к этому файлу. В чем причина?

+0

Дайте нам код. у вас есть NPE ScheduleDailyView.java:89 –

+0

NullPointerException at com.nv.netmdapp1.ScheduleDailyView.onActivityCreated (ScheduleDailyView.java:89) –

+0

Причина - исключение NullPointerException. Некоторый объект имеет значение null, и вы пытаетесь использовать его. –

ответ

0

Поворот устройства перезапускает приложение снова:

OnActivityCreated метод вызывается, и вы получаете исключения нулевого указателя здесь:

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

Проверьте, что нуль здесь, и вы можете избежать перезагрузки деятельности при вращении путем изменения конфигурации.

2

Добавить android:configChanges="orientation" в манифест андроида, он обрабатывает событие изменения ориентации в приложении.

Manifest:

<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> 

Надежда полезно для вас ..

Смежные вопросы