Страницы

Поиск по вопросам

понедельник, 24 февраля 2020 г.

java.lang.NullPointerException: Attempt to write to field 'int android.support.v4.app.Fragment.mNextAnim' on a null object reference [дубликат]

#java #android #android_fragment #fragment_transaction #fragment_manager


        
             
                
                    
                        
                            На этот вопрос уже даны ответы здесь:
                            
                        
                    
                
                        
                            Что такое Null Pointer Exception и как его исправить?
                                
                                    (4 ответа)
                                
                        
                                Закрыт 3 года назад.
            
                    
На Nexus 7 c Android 5.0(не 4.4) происходит крах с Exception из заголовка. После
непродолжительных поисков был найден следующий ответ. Меня он не устраивает, так как
в силу обстоятельств не могу отказаться от android.support.v4.app.  

Возможность операции над фрагментом, равным null, я тоже рассматривал, но такого
быть не должно. Отрывок кода под подозрением:  

String tag = FRAGMENT_STATE;
FragmentManager fragmentManager = getSupportFragmentManager();
...
stateFragment = new Fragment();
...
if (stateFragment != null) {
...
android.support.v4.app.FragmentTransaction transaction = fragmentManager.beginTransaction();//.support.v4
transaction.replace(R.id.content_frame, stateFragment, tag);
...          
transaction.commitAllowingStateLoss();  


Еще есть следующий отрывок:

  //Типо подключаю фрагменты
  if(onerFragment == null) Logi.d("OneFragment is Null");
  //if (oneFragment == null || twoeFragment == null) {
  Logi.d("блок подключения фрагментов");
  fragmentTransaction = fragmentManager.beginTransaction();
  Logi.d("oneGragment constructer before");
  oneFragment = new OneGragment();
  fragmentTransaction.add(R.id.one_fragment, oneFragment);
  Logi.d("TwoFragment constructer before");
  twoFragment = new TwoFragment();
  fragmentTransaction.add(R.id.two_fragment, twoFragment);

  fragmentTransaction.commitAllowingStateLoss();  


Логи:


  FATAL EXCEPTION: main
   Process: название пакета, PID: 7755
   java.lang.NullPointerException: Attempt to write to field 'int android.support.v4.app.Fragment.mNextAnim'
on a null object reference
      at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:709)
      at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501)
      at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:458)
      at android.os.Handler.handleCallback(Handler.java:739)
      at android.os.Handler.dispatchMessage(Handler.java:95)
      at android.os.Looper.loop(Looper.java:135)
      at android.app.ActivityThread.main(ActivityThread.java:5221)
      at java.lang.reflect.Method.invoke(Native Method)
      at java.lang.reflect.Method.invoke(Method.java:372)
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)  


P.S Устройства у меня нет, логи взяты из GoogleTestLab, тестирование на эмуляторе
тоже не смогу. есть ли у кого-нибудь идеи что делать с этим "эксепшеном"?
    


Ответы

Ответ 1



Вот здесь сказано: Это происходит из-за того, что Вы вызываете методы remove(), add() и т.п. со значением null. Поразумевается, что replace() - это remove() и за ним add().

Комментариев нет:

Отправить комментарий