Почему выдает Target must not be null?

Поменял в макете ReletiveLayout на com.makeramen.roundedimageview.RoundedImageView.После этого пошел в адаптер для RecyclerView что бы в UserViewHolder подключить другой id, так как раньше я подключал ImageView а теперь com.makeramen.roundedimageview.RoundedImageView и теперь мне выдает Target must not be null.До того как менял это все,у меня все работало и картинки выводило. Я еще не сильно разобрался с roundedimageview.Могу предположить что это связано с тем что я вв первом случае передавал юрл картинки с БД ImageView а сейчас передаю лейауту com.makeramen.roundedimageview.RoundedImageView. Я запутался уже, подскажите почему у меня появилась эта ошибка

layout_user (это item RecyclerView)

<com.makeramen.roundedimageview.RoundedImageView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/RoundedLayoutUsers"
android:adjustViewBounds="true"
app:riv_corner_radius="12dp"
>
    <ImageView
        android:id="@+id/userImageLine"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/profile"
        android:scaleType="centerCrop"
        android:layout_gravity="fill"
        />
</com.makeramen.roundedimageview.RoundedImageView>

Вот UserAdapter

public class UserAdapter extends RecyclerView.Adapter<UserAdapter.UserViewHolder> {
private List<UserModel> list;
private Context mContext;
private DatabaseReference rootReference = FirebaseDatabase.getInstance().getReference();
private String currentUserID = FirebaseAuth.getInstance().getCurrentUser().getUid();



public UserAdapter(List<UserModel> list) {
    this.list = list;

}

@NonNull
@Override
public UserViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    return new UserViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_user,parent,false));
}

@Override
public void onBindViewHolder(@NonNull UserViewHolder holder, int position) {
    UserModel user = list.get(position);
 //   holder.loginName.setText(user.login);
    Picasso.get().load(user.urlImage).into(holder.userImage);

}

@Override
public int getItemCount() {
    return list.size();
}

class UserViewHolder extends RecyclerView.ViewHolder{

    RoundedImageView userImage;
    TextView loginName;
    RatingBar ratingBar;

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

        userImage = itemView.findViewById(R.id.RoundedLayoutUsers);
   //     loginName = itemView.findViewById(R.id.loginUser);
   //     ratingBar = itemView.findViewById(R.id.ratingBarUser);
    }

}

}

И вот UserModel

public class UserModel {

public String login; public String urlImage;

public UserModel(Context context, String login, String urlImage) {
    this.login = login;
    this.urlImage = urlImage;
}
public UserModel (){

}
public String getLogin() {
    return login;
}

public void setLogin(String login) {
    this.login = login;
}

public String getUrlImage() {
    return urlImage;
}

public void setUrlImage(String urlImage) {
    this.urlImage = urlImage;
}

}


Ответы (1 шт):

Автор решения: ЮрийСПб

Есть 2 пути.

  1. com.makeramen.roundedimageview.RoundedImageView и так уже наследник ImageView. Судя по всему, вам не нужно в него добавлять ещё один ImageView.

  2. Использовать Glide (https://github.com/bumptech/glide) вместо Picasso + RoundedImageView. В нём круглую картинку можно так отобразить в обычном ImageView:

    Glide.with(context)
       .load(url)
       .circleCrop()
       .into(imageView);
    
→ Ссылка