0

This is UserAdapter file in android Studio. I got a Null pointer exception error. I tried a lot but I can't find where is the error.

I created this Class by seeing the YouTube Channel video it is the latest video. He creates with the method of lambda. But I create it by androidx. Can anyone say what is the problem in the code and how to fix it.

package com.dev.educatie.adapters;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.dev.educatie.R;
import com.dev.educatie.models.User;
import java.util.List;

public class UsersAdapter extends RecyclerView.Adapter<UsersAdapter.UserViewHolder> {
private List<User> users;
public UsersAdapter(List<User> users) {
    this.users = users;
}
@NonNull
@Override
public UserViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    return new UserViewHolder(
            LayoutInflater.from(parent.getContext()).inflate(
                    R.layout.item_container_user,
                    parent,
                    true
            )
    );
}
@Override
public void onBindViewHolder(@NonNull UserViewHolder holder, int position) {
    holder.setUserData(users.get(position));
}
@Override
public int getItemCount() {
    return users.size();
}
static class UserViewHolder extends RecyclerView.ViewHolder {
    TextView textFirstChar, textUsername, textEmail;
    ImageView imageAudioMeeting, imageVideoMeeting;
    public UserViewHolder(@NonNull View itemView) {
        super(itemView);
        textFirstChar = itemView.findViewById(R.id.textFirstChar);
        textUsername = itemView.findViewById(R.id.textUsername);
        textEmail = itemView.findViewById(R.id.textEmail);
        imageAudioMeeting = itemView.findViewById(R.id.imageAudioMeeting);
        imageVideoMeeting = itemView.findViewById(R.id.imageVideoMeeting);
    }
    void setUserData(User user) {
        textFirstChar.setText(user.Name.substring(0,1));
        textUsername.setText(String.format("%s.educatie",user.Name));
        textEmail.setText(user.Email);
    }
}
}

Here is the logcat:

2020-08-09 17:54:57.158 26485-26485/com.dev.educatie E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.dev.educatie, PID: 26485
android.view.InflateException: Binary XML file line #24: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:761)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:858)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
    at com.dev.educatie.adapters.UsersAdapter.onCreateViewHolder(UsersAdapter.java:21)
    at com.dev.educatie.adapters.UsersAdapter.onCreateViewHolder(UsersAdapter.java:12)
    at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:7078)
    at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6235)
    at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118)
    at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114)
    at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303)
    at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1627)
    at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587)
    at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665)
    at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134)
    at androidx.recyclerview.widget.RecyclerView.onMeasure(RecyclerView.java:3540)
    at android.view.View.measure(View.java:20682)
    at androidx.constraintlayout.widget.ConstraintLayout.internalMeasureChildren(ConstraintLayout.java:1227)
    at androidx.constraintlayout.widget.ConstraintLayout.onMeasure(ConstraintLayout.java:1572)
    at android.view.View.measure(View.java:20682)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6372)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:214)
    at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)
    at android.view.View.measure(View.java:20682)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6372)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1705)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:797)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:657)
    at android.view.View.measure(View.java:20682)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6372)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:214)
    at android.view.View.measure(View.java:20682)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6372)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1705)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:797)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:657)
    at android.view.View.measure(View.java:20682)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6372)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:214)
    at com.android.internal.policy.DecorView.onMeasure(DecorView.java:735)
    at android.view.View.measure(View.java:20682)
    at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2650)
    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1587)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1856)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1472)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7021)
 2020-08-09 17:54:57.158 26485-26485/com.dev.educatie E/AndroidRuntime:     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:918)
    at android.view.Choreographer.doCallbacks(Choreographer.java:716)
    at android.view.Choreographer.doFrame(Choreographer.java:651)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:904)
    at android.os.Handler.handleCallback(Handler.java:836)
    at android.os.Handler.dispatchMessage(Handler.java:103)
    at android.os.Looper.loop(Looper.java:203)
    at android.app.ActivityThread.main(ActivityThread.java:6261)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1064)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:925)
Mike M.
  • 38,532
  • 8
  • 99
  • 95
  • You have at least one lowercase-`v` `` element without a `class` attribute in your `item_container_user` layout. You likely meant to use uppercase-`V` `` instead. – Mike M. Aug 09 '20 at 12:37
  • Please don't change your question like that. If you're having a new issue, please post a new question for it. – Mike M. Aug 13 '20 at 19:07

0 Answers0