纵向模式下的FragmentTransaction引发NullPointerException

Don*_*ker 0 android android-fragments

首先,我正在使用兼容性库,这是我得到的错误:

11-22 19:57:09.111: ERROR/AndroidRuntime(28867): FATAL EXCEPTION: main
        java.lang.NullPointerException
        at android.support.v4.app.BackStackRecord.bumpBackStackNesting(BackStackRecord.java:518)
        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:563)
        at 

    android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1379)
            at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:419)
            at android.os.Handler.handleCallback(Handler.java:587)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:132)
            at android.app.ActivityThread.main(ActivityThread.java:4123)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:491)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
            at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

仅当应用程序处于PORTRAIT方向并且我尝试使用FragmentTransaction隐藏另外两个片段并显示一个新片段时,才会出现此错误.当用户按下应用程序中的按钮时,将执行此代码.

这是抛出的代码(一旦调用提交并执行,就会抛出上面的错误).

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.addToBackStack(null);
transaction.hide(fragmentA);
transaction.hide(fragmentB);
transaction.replace(R.id.fragment_container, new PurchaseFragment());
transaction.commit();
Run Code Online (Sandbox Code Playgroud)

任何想法为什么会这样?

Don*_*ker 7

弄清楚它是什么.我正在使用Roboguice注入一些组件,并且由于上面没有显示的某些逻辑,片段为空.如果任何片段为null,transaction.hide(fragment)则会发生上述异常.

修复逻辑错误后,片段不再为空.那时应用程序按预期工作.