I'm building a boardgame manager app using kotlin for a school project, and I'm new at using Kotlin and Android Studio. I've decided to adapt an online tutorial to my needs so I can build my own app. But this error appears when I launch the app and I don't understand why :

```
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference

```

I've tried to launch it in debug mode so I may find the problem but I don't understand why it is mentionned that it can be null.

I use a realtime firebase database, and here is the code of my BgAdapter, where the FATAL EXCEPTION appears :

```
class BgAdapter(
val context: MainActivity,
private val bgList: List<BgModel>,
private val layoutId: Int) : RecyclerView.Adapter<BgAdapter.ViewHolder>() {

//Boîte pour ranger tout les composants à contrôler
class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
    val bgImage = view.findViewById<ImageView>(R.id.image_item)
    val bgName: TextView? = view.findViewById(R.id.name_item)
    val bgEditor: TextView? = view.findViewById(R.id.editor_item)
    val bgFavIcon = view.findViewById<ImageView>(R.id.add_light_icon)
}

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
    val view = LayoutInflater
        .from(parent.context)
        .inflate(layoutId, parent, false)

    return ViewHolder(view)
}

override fun onBindViewHolder(holder: ViewHolder, position: Int) {
    //Récupérer les informations des bgs
    val currentBg = bgList[position]

    //Récupérer le repository
    val repo = BgRepository()

    //Utiliser glide pour récupérer l'image à partir de son lien -> composant
    Glide.with(context).load(Uri.parse(currentBg.image_url)).into(holder.bgImage)

    //Mettre à jour le nom du jeu
    holder.bgName?.text = currentBg.name

    //Mettre à jour le nom de l'éditeur du jeu
    holder.bgEditor?.text = currentBg.editor

    //Vérifier si le jeu a été ajouté ou non
    if (currentBg.faved) {
        holder.bgFavIcon.setImageResource(R.drawable.ic_check)
    } else {
        holder.bgFavIcon.setImageResource(R.drawable.ic_add_light)
    }

    //Rajouter une interaction sur icône checkbox
    holder.bgFavIcon.setOnClickListener {
        //Inverse si le bouton est en mode "ajouté" ou non
        currentBg.faved = !currentBg.faved
        //Mettre à jour l'objet jeu
        repo.updateBg(currentBg)
    }

    //Interaction lors du clic sur un jeu
    holder.itemView.setOnClickListener {
        //Afficher la popup
        BgInfoPopup(this, currentBg).show()
    }
}

override fun getItemCount(): Int = bgList.size

```

}

The FATAL EXCEPTION is targetting specificaly this part :

```
        if (currentBg.faved) {
        holder.bgFavIcon.setImageResource(R.drawable.ic_check)
    } else {
        holder.bgFavIcon.setImageResource(R.drawable.ic_add_light)
    }

```

If you have any idea for an unexperienced student who really needs help, feel free to answer ! :)

Thank you by advance