Nullpointerexception в методе getResource

Когда я нажимаю кнопку «Назад» в своем приложении, я получаю исключение NullPointerException в методе getResource (). getResource используется в URL-адресе и вызывается в glideApp.

мой код

private void setupPostUserImage(ImageView image, PostDetail detail) {
    mUserPicture.setVisibility(View.VISIBLE);
    String url = getActivity().getResources().getString(R.string.profile_image_path1) + "/" + detail.getUser_id_fk() + "/thumb/" + detail.getProfile_picture();
    //Toast.makeText(getContext(),url,Toast.LENGTH_LONG).show();
    GlideApp.with(image.getContext())
            .load(url)
            .placeholder(R.drawable.ic_avtar_male)
            .into(image);
}

Это мой отчет о сбое из logcat

Process: com.ATG.World, PID: 24491
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.support.v4.app.FragmentActivity.getResources()' on a null object reference
    at com.ATG.World.fragments.ArticleDetailFragment2.setupPostUserImage(ArticleDetailFragment2.java:316)
    at com.ATG.World.fragments.ArticleDetailFragment2.setData(ArticleDetailFragment2.java:301)
    at com.ATG.World.fragments.ArticleDetailFragment2$1.onResponse(ArticleDetailFragment2.java:176)
    at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:71)
    at android.os.Handler.handleCallback(Handler.java:898)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:198)
    at android.app.ActivityThread.main(ActivityThread.java:6716)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
12-21 19:38:17.829 24491-24491/com.ATG.World I/Process: Sending signal. PID: 24491 SIG: 9

что мне делать, чтобы разрешить это исключение?

Возможный дубликат Что такое исключение NullPointerException и как его исправить?

Murat Karagöz 21.12.2018 15:28

Я прошел через это, но не могу найти решения своей проблемы.

jilla sivaram 21.12.2018 15:32

Похоже, ваш getActivity() возвращает null, потому что ваш фрагмент был уничтожен

tyczj 21.12.2018 15:36

У вашего кода есть возможность взломать каждую точку (.). Если getActivity () имеет значение null, он прерывается. Если getActivity (). GetResources () имеет значение null, он прерывается. Поэтому, прежде чем использовать оператор точки для любого объекта, выполните нулевую проверку, а затем получите доступ к объекту / функции.

Mukesh Verma 21.12.2018 15:37

У меня сработала нулевая проверка @MukeshVerma. Спасибо за помощь

jilla sivaram 22.12.2018 16:02
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
5
93
1

Ответы 1

У меня нет репутации, чтобы комментировать, поэтому я должен написать ответ. Похоже, что ваш фрагмент не привязан к активности, поэтому метод getActivity () возвращает null. Посмотри этот ответ может будет пригодится getActivity () возвращает null в функции фрагмента

Другие вопросы по теме