切换到新片段时奇怪的logcat错误

我没有遇到像这样的堆栈跟踪。 这是特别奇怪的,因为我只能得到debugging时抛出的错误。 (在没有debugging的情况运行应用程序不会产生这个错误)。 这发生在从我的抽屉里select一个特定的页面。 我刚刚从活动切换到片段,我可能没有正确处理我的片段交易。 我将不胜感激任何input! 谢谢很多家伙,节日快乐!

这是堆栈跟踪:

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) ,该应用程序崩溃(再次,只有在debugging时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();` 

任何想法和input是赞赏:)

我find了解决这个问题的办法。 在android.support.v4.app.BackStackRecord.run()方法中放置一个断点,并将break条件设置为false

在这里输入图像说明

我最近在Android studio中遇到了同样的错误消息。 我可以运行我的应用程序,但是一旦我尝试开始debugging,我会收到“尝试读取空领域'布尔android.support.v4.app.BackStackRecord.mAddToBackStack'空对象引用”。 解决的办法是在Android Studio中select运行(工具栏) – >查看断点 – >逐个禁用每个断点,直到debugging开始再次运行。 这样做并不能完全消除中断点,只是简单地禁用中断点,所以没有必要担心需要删除所有中断点才能find导致问题的中断点。 看来,我已经在IntentService类中设置的一个突破点导致了这个问题。 我不知道为什么这是一个问题,但似乎为我解决这个错误。