title: Kotin lateinit Var Not initialized - Android Studio
body: <p>I am working on a simple contact app that stores the contact's name, email, and number. 
  Language: Kotlin
  Architecture: MVVM
  But I am getting an error: <code>lateinit property addContactViewModel has not been initialized</code></p>
  
  <blockquote>
    <p><strong>Activity:</strong></p>
  </blockquote>
  
  <pre><code>class AddContact : AppCompatActivity() {
  
  private lateinit var addContactViewModel : AddContactViewModel
  
  companion object{
      const val EXTRA_REPLY = "com.room.contacts.REPLY"
  }
  
  override fun onCreate(savedInstanceState: Bundle?) {
      super.onCreate(savedInstanceState)
      val binding  = DataBindingUtil.setContentView&lt;ActivityAddContactBinding&gt;(
          this,R.layout.activity_add_contact
      )
  
      binding.btnSave.setOnClickListener {
          val replyIntent = Intent()
          val fname= binding.fnameEdit.text.toString()
          val lname= binding.lnameEdit.text.toString()
          val email = binding.emailAddressEdit.text.toString()
          val contactno = binding.contactNumberEdit.text.toString()
          val contact = Contact(fname, lname,email,contactno)
          addContactViewModel.insert(contact)
          val intent = Intent(this, ContactList::class.java)
          // start your next activity
          startActivity(intent)
      }
  
  }}
  </code></pre>
  
  <blockquote>
    <p><strong>ViewModel:</strong></p>
  </blockquote>
  
  <pre><code>class AddContactViewModel (application: Application) : AndroidViewModel(application){
  
  private val repository: ContactRepository
  
  init {
      val contactsDao= ContactRoomDatabase.getDatabase(application).contactDao()
      repository = ContactRepository(contactsDao)
  }
  
  fun insert(contact: Contact) = viewModelScope.launch {
      repository.insert(contact)
  }}
  </code></pre>
  
  <blockquote>
    <p><strong>Error:</strong></p>
  </blockquote>
  
  <pre><code>E/AndroidRuntime: FATAL EXCEPTION: main
  Process: com.room.contacts, PID: 29383
  kotlin.UninitializedPropertyAccessException: lateinit property addContactViewModel has not been initialized
      at com.room.contacts.screens.addContact.AddContact.access$getAddContactViewModel$p(AddContact.kt:15)
      at com.room.contacts.screens.addContact.AddContact$onCreate$1.onClick(AddContact.kt:36)
      at android.view.View.performClick(View.java:4781)
      at android.view.View$PerformClick.run(View.java:19907)
      at android.os.Handler.handleCallback(Handler.java:739)
      at android.os.Handler.dispatchMessage(Handler.java:95)
      at android.os.Looper.loop(Looper.java:160)
      at android.app.ActivityThread.main(ActivityThread.java:5541)
      at java.lang.reflect.Method.invoke(Native Method)
      at java.lang.reflect.Method.invoke(Method.java:372)
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:964)
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:759)
  </code></pre>