#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().
Комментариев нет:
Отправить комментарий