【发布时间】:2015-02-23 10:17:09
【问题描述】:
我还没有遇到过这样的堆栈跟踪。这特别奇怪,因为我只能在调试时抛出错误。 (运行应用程序 调试不会产生此错误)。这发生在从我的导航抽屉中选择特定页面时。我最近刚刚从活动切换到片段,我可能没有正确处理我的片段事务。我将不胜感激任何意见!非常感谢各位,节日快乐!
这是堆栈跟踪:
Process: com.kohlerbear.whowascnscalc, PID: 2415
java.lang.NullPointerException: Attempt to read from field 'boolean android.support.v4.app.BackStackRecord.mAddToBackStack' on a null object reference
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:685)
at android.support.v4.app.FragmentManagerImpl.execPeerrorndingActions(FragmentManager.java:1479)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:447)
at android.os.Handler.handleCallback(Handler.java:740)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5223)
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)
这就是我如何处理我的片段更改(不确定这是否是问题,仅从跟踪提到后台堆栈的事实来判断)。无论我是否调用ft.addToBackStack(null),应用程序都会崩溃(同样,仅在调试时)。
Fragment frag = new ThirdScreenFragment();
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.content_frame, frag);
ft.addToBackStack(null);
ft.commit();`
感谢任何想法和意见:)
【问题讨论】:
-
frag或ft是否为空?