Страницы

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

вторник, 7 мая 2019 г.

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

На данный вопрос уже ответили: Что такое Null Pointer Exception и как его исправить? 4 ответа На 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, тестирование на эмуляторе тоже не смогу. есть ли у кого-нибудь идеи что делать с этим "эксепшеном"?


Ответ

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

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

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