java - 添加 fragment 时出现 Glide 库错误或应用程序崩溃,并且还显示该特定问题的图像

标签 java android android-glide

当 getActivity() 返回 null 时,您无法在尚未附加的 View 或 Fragment 上启动加载(这通常发生在附加 Fragment 之前或销毁 Fragment 之后调用 getActivity() 时。

 fuser = FirebaseAuth.getInstance().getCurrentUser();
        reference = FirebaseDatabase.getInstance().getReference("Users").child(fuser.getUid());

        reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if(isAdded()) {
                    User user = dataSnapshot.getValue(User.class);
                    assert user != null;
                    username.setText(user.getUsername());
                    if (user.getImageURL().equals("default")) {
                        image_profile.setImageResource(R.mipmap.ic_launcher);
                    } else {
                        Glide.with(ProfileFragment.this).load(user.getImageURL()).into(image_profile);
                    }
                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

添加 fragment 时我的应用程序崩溃。

最佳答案

您需要尝试这样的代码:

reference.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        if(isAdded()) {
            User user = dataSnapshot.getValue(User.class);
            assert user != null;
            username.setText(user.getUsername());
            if (user.getImageURL().equals("default")) {
                image_profile.setImageResource(R.mipmap.ic_launcher);
            } else {
                if(getAcivity()!=null && !getAcivity().isFinishing())
                    Glide.with(getAcivity()).load(user.getImageURL()).into(image_profile);
            }
        }
    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {

    }
});

关于java - 添加 fragment 时出现 Glide 库错误或应用程序崩溃,并且还显示该特定问题的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56003460/

相关文章:

android - 图片来自网络,Glide 在 Android 上太小

java - 如何保存位图的正确旋转

java - 如何从远离应用程序根的非上下文类访问 xml 描述的资源?

java - ArrayIndexOutOfBounds,不明白为什么?

Java 按子类型对对象进行分组

java - 我怎样才能保持相同的值(value)?

java - 如何在java中使用大型数据库表而不会遇到性能问题

android - 如何从 NetBeans 直接在手机上运行 J2ME 应用程序?

java - 异步任务执行后通知的非法监视器状态异常

android - 如何将参数传递给 Glide Callback 方法?