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)
任何想法为什么会这样?
弄清楚它是什么.我正在使用Roboguice注入一些组件,并且由于上面没有显示的某些逻辑,片段为空.如果任何片段为null,transaction.hide(fragment)则会发生上述异常.
修复逻辑错误后,片段不再为空.那时应用程序按预期工作.
| 归档时间: |
|
| 查看次数: |
2219 次 |
| 最近记录: |