czasami pojawia się następujący wyjątek podczas pracy z fragmentami:Android FragmentManager BackStackRecord.run rzuca NullPointerException
FATAL EXCEPTION: main
java.lang.NullPointerException
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:591)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1416)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:420)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Wyjątek występuje wtedy, gdy run()
z BackStackRecord
jest nazywany przez execPendingTransactions()
, gdy próbuje usunąć fragment od kierownika .
case OP_REMOVE: {
Fragment f = op.fragment;
f.mNextAnim = op.exitAnim; <----
mManager.removeFragment(f, mTransition, mTransitionStyle);
}
break;
Nie mogę się domyślić, co to jest przyczyną? Myślę, że ma to związek z tym, że fragmenty nie są prawidłowo oczyszczane.
Dobra odpowiedź - pomogło mi to rozwiązać mój problem. Jedna rzecz do zapamiętania, otrzymasz ten sam błąd, gdy wywołasz FragmentTransaction.show (null), .hide (null) itp. Nie tylko .remove (null). Mam nadzieję, że pomoże to innym w odnalezieniu problemu. –
Dzięki @NickL ...... – hemu
Pomógł mi DUŻO! Zauważ, że nie powiedzie się z żadną akcją wysłaną z fragmentem zerowym (w moim przypadku 'attach'' detach' – shinyuX