Android void com.firebase.ui.database.FirebaseRecyclerAdapter.startListening();关于空对象引用

Android void com.firebase.ui.database.FirebaseRecyclerAdapter.startListening();关于空对象引用,android,Android,您好,我在onStart上调用adpater时遇到此错误。有人知道我如何修复它吗?事先非常感谢。欢迎提供一切帮助。 我一直在努力寻找解决方案,但我所做的一切都导致了同样的错误。我不知道还能做什么 调用adapter.startListening()时出错;在onStart中 错误logcat:>由以下原因引起:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void com.firebase.ui.database.FirebaseRecyclerA

您好,我在onStart上调用adpater时遇到此错误。有人知道我如何修复它吗?事先非常感谢。欢迎提供一切帮助。 我一直在努力寻找解决方案,但我所做的一切都导致了同样的错误。我不知道还能做什么

调用adapter.startListening()时出错;在onStart中

错误logcat:>
由以下原因引起:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void com.firebase.ui.database.FirebaseRecyclerAdapter.startListening()”

public class FindFriendsActivity extends AppCompatActivity
{
    FirebaseRecyclerAdapter<Contacts, FindFriendViewHolder> adapter;
    private Toolbar mToolbar;
    private RecyclerView FindFriendsRecyclerList;
    private DatabaseReference UsersRef;

    private SearchView searchView;
    private Query query;

    private FirebaseRecyclerOptions<Contacts> options;
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_find_friends);


        UsersRef = FirebaseDatabase.getInstance().getReference().child("Users");


        FindFriendsRecyclerList = (RecyclerView) findViewById(R.id.find_friends_recycler_list);
        FindFriendsRecyclerList.setLayoutManager(new LinearLayoutManager(this));


        mToolbar = (Toolbar) findViewById(R.id.find_friends_toolbar);
        setSupportActionBar(mToolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
        getSupportActionBar().setTitle("Find Friends");
        searchView = findViewById(R.id.materialSearchPrincipal);


    }





    private void fetch(Query query) {

        FirebaseRecyclerOptions<Contacts > options =
                new FirebaseRecyclerOptions.Builder<Contacts>()
                        .setQuery(query, new SnapshotParser<Contacts>() {
                            @RequiresApi(api = Build.VERSION_CODES.KITKAT)
                            @NonNull
                            @Override
                            public Contacts parseSnapshot(@NonNull DataSnapshot snapshot) {
                                return new Contacts(Objects.requireNonNull(snapshot.child("name").getValue()).toString(),

                                        Objects.requireNonNull(snapshot.child("status").getValue()).toString());
                            }
                        })
                        .build();

        adapter = new FirebaseRecyclerAdapter<Contacts, FindFriendViewHolder>(options) {

            @Override
            protected void onBindViewHolder(@NonNull FindFriendViewHolder holder, final int position, @NonNull Contacts model)
            {
                holder.userName.setText(model.getName());
                holder.userStatus.setText(model.getStatus());
                Picasso.get().load(model.getImage()).placeholder(R.drawable.profile_image).into(holder.profileImage);


                holder.itemView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view)
                    {
                        String visit_user_id = getRef(position).getKey();

                        Intent profileIntent = new Intent(FindFriendsActivity.this, ProfileActivity.class);
                        profileIntent.putExtra("visit_user_id", visit_user_id);
                        startActivity(profileIntent);
                    }
                });

            }

            @NonNull
            @Override
            public FindFriendViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i)
            {
                View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.users_display_layout, viewGroup, false);
                FindFriendViewHolder viewHolder = new FindFriendViewHolder(view);
                return viewHolder;
            }

        };

        adapter.startListening();
        FindFriendsRecyclerList.setAdapter(adapter);
    }
    @Override
    protected void onStart()
    {
        super.onStart();
       adapter.startListening();
        UsersRef = FirebaseDatabase.getInstance().getReference().child("Users");
        Query query =  FirebaseDatabase.getInstance().getReference().child("Users");

        fetch(query);

    }








    public static class FindFriendViewHolder extends RecyclerView.ViewHolder
    {
        TextView userName, userStatus;
        CircleImageView profileImage;


        public FindFriendViewHolder(@NonNull View itemView)
        {
            super(itemView);

            userName = itemView.findViewById(R.id.user_profile_name);
            userStatus = itemView.findViewById(R.id.user_status);
            profileImage = itemView.findViewById(R.id.users_profile_image);
        }
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
        super.onCreateOptionsMenu(menu);


        searchView.setOnQueryTextListener(new androidx.appcompat.widget.SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String s) {
                return false;
            }

            @Override
            public boolean onQueryTextChange(String s) {

                Query query = FirebaseDatabase.getInstance()
                        .getReference()
                        .child("Users").orderByChild("name").equalTo(s);

                if(s.equals("")){
                    query = FirebaseDatabase.getInstance()
                            .getReference()
                            .child("Users");
                }

                fetch(query);

                return false;
            }
        });

        return super.onCreateOptionsMenu(menu);
    }

}
公共类FindFriendsActivity扩展了AppCompatActivity
{
FirebaseRecyclerAdapter适配器;
私有工具栏mToolbar;
私人回收站查看FindFriendsRecyclerList;
私有数据库引用用户sref;
私有搜索视图搜索视图;
私有查询;
私人FirebaseRecyclerOptions选项;
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u find\u friends);
UsersRef=FirebaseDatabase.getInstance().getReference().child(“用户”);
FindFriendsRecyclerList=(RecyclerView)findViewById(R.id.find\u friends\u recycler\u list);
setLayoutManager(新的LinearLayoutManager(this));
mToolbar=(工具栏)findviewbyd(R.id.find\u friends\u工具栏);
设置支持操作栏(mToolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setTitle(“查找朋友”);
searchView=findViewById(R.id.materialSearchPrincipal);
}
私有void获取(查询){
FirebaseRecyclerOptions选项=
新的FirebaseRecyclerOptions.Builder()
.setQuery(查询,新快照解析器(){
@RequiresApi(api=Build.VERSION\u CODES.KITKAT)
@非空
@凌驾
公共联系人解析快照(@NonNull DataSnapshot snapshot){
返回新联系人(Objects.requirennoull(snapshot.child(“name”).getValue()).toString(),
Objects.requirennull(snapshot.child(“status”).getValue().toString());
}
})
.build();
适配器=新的FirebaseRecyclerAdapter(选项){
@凌驾
受保护的无效onBindViewHolder(@NonNull FindFriendViewHolder,最终整数位置,@NonNull联系人模型)
{
holder.userName.setText(model.getName());
holder.userStatus.setText(model.getStatus());
Picasso.get().load(model.getImage()).placeholder(R.drawable.profile\u image).into(holder.profileImage);
holder.itemView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图)
{
字符串visit_user_id=getRef(position).getKey();
Intent profileIntent=新的Intent(FindFriendsActivity.this,ProfileActivity.class);
profileIntent.putExtra(“访问用户id”,访问用户id);
星触觉(意向);
}
});
}
@非空
@凌驾
public FindFriendViewHolder onCreateViewHolder(@NonNull ViewGroup ViewGroup,int i)
{
View View=LayoutInflater.from(viewGroup.getContext()).flate(R.layout.users\u display\u布局,viewGroup,false);
FindFriendViewHolder=新的FindFriendViewHolder(视图);
返回视图持有者;
}
};
adapter.startListening();
setAdapter(适配器);
}
@凌驾
受保护的void onStart()
{
super.onStart();
adapter.startListening();
UsersRef=FirebaseDatabase.getInstance().getReference().child(“用户”);
Query Query=FirebaseDatabase.getInstance().getReference().child(“用户”);
获取(查询);
}
公共静态类FindFriendViewHolder扩展了RecyclerView.ViewHolder
{
TextView用户名、userStatus;
圆形图像查看轮廓图像;
public findFriendView文件夹(@NonNull View itemView)
{
超级(项目视图);
userName=itemView.findviewbyd(R.id.user\u profile\u name);
userStatus=itemView.findviewbyd(R.id.user\u status);
profileImage=itemView.findviewbyd(R.id.users\u profile\u image);
}
}
@凌驾
公共布尔onCreateOptions菜单(菜单)
{
super.onCreateOptions菜单(菜单);
searchView.setOnQueryTextListener(新的androidx.appcompat.widget.searchView.OnQueryTextListener(){
@凌驾
公共布尔值onQueryTextSubmit(字符串s){
返回false;
}
@凌驾
公共布尔值onQueryTextChange(字符串s){
Query Query=FirebaseDatabase.getInstance()
.getReference()
.child(“用户”).orderByChild(“名称”).equalTo(s);
如果(s.等于(“”){
query=FirebaseDatabase.getInstance()
.getReference()
.儿童(“用户”);
}
获取(查询);
返回false;
}
});
返回super.onCreateOptions菜单(菜单);
}
}

您的适配器在fetch函数中初始化,但在
adapter.startListening()之后调用fetch函数onStart
方法中的code>,因为它未初始化。y