На данный вопрос уже ответили:
Что такое 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()
Комментариев нет:
Отправить комментарий