简体   繁体   中英

Lateinit property has not been initialized (Android, Kotlin)

I'm currently working with a room database in my journal app. However, whenever I try to insert a new entry into my app without changing the bitmap variable by picking an image, my app crashes and displays this error.

2020-12-24 22:44:35.296 31023-31023/com.google.gradient.red E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.google.gradient.red, PID: 31023
    kotlin.UninitializedPropertyAccessException: lateinit property bitmap has not been initialized
        at com.google.gradient.red.fragments.add.addFragment.insertDataToDb(AddFragment.kt:132)
        at com.google.gradient.red.fragments.add.addFragment.onOptionsItemSelected(AddFragment.kt:111)

Here is my code:

// I make my bitmap variable
lateinit var bitmap: Bitmap

override fun onAttach(context: Context) {
        super.onAttach(context)
        var bitmap: Bitmap? = null
    }

Line 111 is when I call my insertDataToDb() function, and line 132 is in newData where I'm trying to insert my bitmap variable.

kotlin.UninitializedPropertyAccessException: lateinit property bitmap has not been initialized

The error message is clear. You've defined a lateinit field but never initialized it.
In your code here:

// I make my bitmap variable
lateinit var bitmap: Bitmap

override fun onAttach(context: Context) {
    super.onAttach(context)
    var bitmap: Bitmap? = null
}

You're defining a lateinit var called bitmap . So, since you used the keyword lateinit , you definitely should initialize it somewhere. Which, I guess, is what you were trying to do in the onAttach method. However, you're defining a new "locale" variable instead of initializing the original one. So, remove the onAttach method and change this:

lateinit var bitmap: Bitmap

To this:

var bitmap: Bitmap? = null

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM