Android NullPointerException во фрагменте ItemDetail при установке заголовка - PullRequest
0 голосов
/ 06 июня 2018

Я не знаю почему, но я получаю сообщения о том, что многие из моих пользователей получают NullPointerException в этой строке: appBarLayout.setTitle("אזעקה (" + mItem.datetime + ")");

Я пробовал много вещей, чтобы поймать это исключение, но я просто могуНе могу понять, как он достигает этой линии и получает NullPointerException.

Сначала я убедился, что appBarLayout не равно нулю.Затем я проверил, что мой mItem.datetime содержит дату и время.

Вот мой код:

    mItem = AlertsDetails.items_map.get(getArguments().getString(ARG_ITEM_ID));

    Activity activity = this.getActivity();

    if (mItem == null || mItem.datetime == null)
    {
        activity.finish();
    }

    CollapsingToolbarLayout appBarLayout = (CollapsingToolbarLayout) activity.findViewById(R.id.toolbar_layout);
    if (appBarLayout != null) {
        appBarLayout.setTitle("אזעקה (" + mItem.datetime + ")");
        appBarLayout.setBackgroundResource(R.mipmap.alert_background);
    }

Что я здесь пропустил?Как это возможно, что и appBarLayout, и mItem.datetime не равны NULL, но метод setTitle создает NullPointerException?

Вот такие журналы ошибок, которые я получаю:

java.lang.RuntimeException: 
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2955)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:3030)
  at android.app.ActivityThread.-wrap11 (Unknown Source)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1696)
  at android.os.Handler.dispatchMessage (Handler.java:105)
  at android.os.Looper.loop (Looper.java:164)
  at android.app.ActivityThread.main (ActivityThread.java:6938)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:327)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374)
Caused by: java.lang.NullPointerException: 
  at com.morha.cumtaalerts.fragments.ItemDetailFragment.onCreate (ItemDetailFragment.java:63)
  at android.support.v4.app.Fragment.performCreate (Fragment.java:2328)
  at android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1379)
  at android.support.v4.app.FragmentTransition.addToFirstInLastOut (FragmentTransition.java:1188)
  at android.support.v4.app.FragmentTransition.calculateFragments (FragmentTransition.java:1071)
  at android.support.v4.app.FragmentTransition.startTransitions (FragmentTransition.java:115)
  at android.support.v4.app.FragmentManagerImpl.executeOpsTogether (FragmentManager.java:2379)
  at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute (FragmentManager.java:2337)
  at android.support.v4.app.FragmentManagerImpl.execPendingActions (FragmentManager.java:2244)
  at android.support.v4.app.FragmentManagerImpl.dispatchStateChange (FragmentManager.java:3255)
  at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated (FragmentManager.java:3205)
  at android.support.v4.app.FragmentController.dispatchActivityCreated (FragmentController.java:195)
  at android.support.v4.app.FragmentActivity.onStart (FragmentActivity.java:597)
  at android.support.v7.app.AppCompatActivity.onStart (AppCompatActivity.java:177)
  at android.app.Instrumentation.callActivityOnStart (Instrumentation.java:1340)
  at android.app.Activity.performStart (Activity.java:7191)
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2918)

Спасибо!

1 Ответ

0 голосов
/ 06 июня 2018

Добавить return; после завершения Activity:

if (mItem == null || mItem.datetime == null)
{
    activity.finish();
    return;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...