Accessing a lateinit property before assigning a value to it.
Kotlin's `lateinit` modifier allows non-null var properties to defer initialization. Accessing a `lateinit var` before assigning an initial value throws an `UninitializedPropertyAccessException`.
Accessing UI components or injected services before lifecycle methods (e.g. `onCreate()` or `@BeforeEach`) execute.
1class UserService {2 lateinit var databaseUrl: String3 4 fun connect() {5 println("Connecting to $databaseUrl") // Exception if databaseUrl hasn't been set!6 }7}8 9fun main() {10 val service = UserService()11 service.connect() // Throws UninitializedPropertyAccessException!12}1class UserService {2 lateinit var databaseUrl: String3 4 fun connect() {5 // Fix 1: Check initialization status with ::property.isInitialized6 if (::databaseUrl.isInitialized) {7 println("Connecting to $databaseUrl")8 } else {9 println("Database URL not set yet.")10 }11 }12}13 14fun main() {15 val service = UserService()16 service.databaseUrl = "jdbc:postgresql://localhost:5432/db"17 service.connect()18}Simulate standard system builds to trigger compiler trace records and track memory crashes locally.
`databaseUrl` is marked `lateinit var`. Because `connect()` is called before `databaseUrl = ...`, Kotlin halts execution.