Complete beginner, trying this on kotlin. I am trying to capture a photo and save it and then load it on room database. I also need tag the photo and load it according to that. But there is an error like "Caused by: java.lang.NullPointerException: findViewById(R.id.metin) must not be null". How I can solve it? Thanks in advance.
class MainActivity : AppCompatActivity() {
    private val cameraRequest = 1888
    lateinit var imageView: ImageView
    lateinit var textbox : EditText
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        var dao_object = ImageDatabase.getInstance(application).MyDao()
        textbox = findViewById(R.id.metin)
        setContentView(R.layout.activity_main)
        if (ContextCompat.checkSelfPermission(applicationContext, Manifest.permission.CAMERA)
            == PackageManager.PERMISSION_DENIED
        )
            ActivityCompat.requestPermissions(
                this,
                arrayOf(Manifest.permission.CAMERA),
                cameraRequest
            )
        imageView = findViewById(R.id.imageView)
       // var textbox: EditText = findViewById(R.id.text)
        val photoButton: Button = findViewById(R.id.capture_button)
        photoButton.setOnClickListener {
            val cameraIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
            startActivityForResult(cameraIntent, cameraRequest)
        }
        val saveButton: Button= findViewById(R.id.save_button)
        saveButton.setOnClickListener{
            val takenPhoto: ByteArray = DbBitmapUtility.getBytes(imageView.drawingCache)
            dao_object.insertImage(MyDatabase(takenPhoto, textbox.text.toString()))
        }
        val loadButton: Button= findViewById(R.id.load_button)
        loadButton.setOnClickListener {
            var displayPhoto: ByteArray = dao_object.getImageByTag(textbox.text.toString())
            imageView.setImageBitmap(DbBitmapUtility.getImage(displayPhoto))
        }
    }
    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == cameraRequest) {
            val photo: Bitmap = data?.extras?.get("data") as Bitmap
            imageView.setImageBitmap(photo)
        }
    }
    object DbBitmapUtility {
        // convert from bitmap to byte array
        fun getBytes(bitmap: Bitmap): ByteArray {
            val stream = ByteArrayOutputStream()
            bitmap.compress(Bitmap.CompressFormat.PNG, 0, stream)
            return stream.toByteArray()
        }
        // convert from byte array to bitmap
        fun getImage(image: ByteArray): Bitmap {
            return BitmapFactory.decodeByteArray(image, 0, image.size)
        }
    }
}