Glide.with((getContext())).load(user.getImgURl()).into(image_profile);
Приведенная выше строка возвращает getContext как ноль, что позволяет приложению аварийно завершить работу.
Я добавил это во фрагмент под методом onDataChange следующим образом.
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.fragment_profile, container, false);
image_profile=view.findViewById(R.id.profile_image);
username=view.findViewById(R.id.username);
storageReference=FirebaseStorage.getInstance().getReference("uploads");
fuser=FirebaseAuth.getInstance().getCurrentUser();
reference=FirebaseDatabase.getInstance().getReference("Users").child(fuser.getUid());
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
User user= dataSnapshot.getValue(User.class);
username.setText(user.getUsername());
if(user.getImgURl()!= null && user.getImgURl().equals("default")){
image_profile.setImageResource(R.mipmap.ic_launcher);
}else{
Glide.with((getContext())).load(user.getImgURl()).into(image_profile);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
image_profile.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openImage();
}
});
return view;
}
Код должен извлекать изображение из хранилища Firebase и отображать его в image_profile.
Ниже приводится logcat для ошибки:
java.lang.NullPointerException:
Вы не можете начать загрузку еще не прикрепленного просмотра или фрагмента, где getActivity () возвращает значение null (что обычно происходит при вызове getActivity () перед присоединением фрагмента или после уничтожения фрагмента).
at com.bumptech.glide.util.Preconditions.checkNotNull(Preconditions.java:31)
at com.bumptech.glide.Glide.getRetriever(Glide.java:675)
at com.bumptech.glide.Glide.with(Glide.java:707)
at com.hello.khushboo.messaging.Fragments.ProfileFragment$1.onDataChange(ProfileFragment.java:110)
at com.google.firebase.database.core.ValueEventRegistration.fireEvent(com.google.firebase:firebase-database@@16.0.5:75)
at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database@@16.0.5:63)
at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:firebase-database@@16.0.5:55)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
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)
Любая помощь приветствуется.
Заранее спасибо.