Подтвердить что ты не робот

Нечетная ошибка logcat при переключении на новый фрагмент

Я не столкнулся с такой трассировкой стека. Это особенно странно, потому что я могу получить ошибку только при отладке. (Запуск приложения без отладки не приводит к этой ошибке). Это происходит при выборе конкретной страницы из моего навигационного ящика. Я только что перешел от действий к фрагментам, и я, возможно, не обработал транзакции с фрагментами правильно. Буду признателен за любой вклад! Большое спасибо, ребята, счастливые праздники!

Здесь трассировка стека:

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)

И вот как я обрабатываю изменение своего фрагмента (не уверен, что это проблема, просто судя по тому, что в трассировке упоминается задняя часть). Приложение аварийно завершает работу (опять же, только при отладке) независимо от того, вызываю ли я /t 21 > .

Fragment frag = new ThirdScreenFragment(); 
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.content_frame, frag);
ft.addToBackStack(null);
ft.commit();`

Любые идеи и ввод приветствуются:)

4b9b3361

Ответ 1

Я нашел обходной путь для этой проблемы. Поместите точку останова в метод android.support.v4.app.BackStackRecord.run() и установите условие прерывания на false.

enter image description here

Ответ 2

Недавно я столкнулся с тем же сообщением об ошибке в студии Android. Я мог запускать свое приложение, но как только я попытался начать отладку, я получил бы "Попытка прочитать из поля" boolean android.support.v4.app.BackStackRecord.mAddToBackStack "в ссылке на нулевой объект". Решение заключалось в том, чтобы выбрать в Android Studio, Run (панель инструментов) → View Break Points → отключить каждую точку останова по очереди, пока отладка не начнет работать снова. Выполнение этого не полностью устраняет точку останова, оно просто отключает их, поэтому нет необходимости беспокоиться о том, что вам нужно будет удалить все точки останова, чтобы найти тот, который вызывает проблему. Кажется, что одна из точек останова, которую я установил в классе IntentService, вызывала проблему. Я не уверен, почему это вызвало проблему, но мне показалось, что эта ошибка исправлена.