반응형
kotlin.UninitializedPropertyAccessException: lateinit property ... has not been initialized
이 오류는 lateinit으로 선언된 속성이 초기화되지 않은 채로 접근되었을 때 발생하는 에러이다.
lateinit 키워드는 나중에 초기화될 것을 의미하는데, 초기화 되지 않은 {@@@}가 사용 됨에 따라 나타나는 에러이다.
해결법
- var 앞에 lateinit 사용하여 선언된 변수에 초기화가 되기전에 사용이 되는 경우
lateinit var name: String
username = name -> Exception 발생
아래와 같이 값이 들어가 있어야 한다.
lateinit var name: String
name = "developertools"
username = name
- val 에서만 사용 가능하고, by lazy 사용하여 선언
val name: String by lazy { "developertools" }
추가로, Activity, Fragment의 생명주기에 의해 onDestory가 발생하여, 초기화 된 값을 잃어 버릴때도 발생한다.
반응형
'Develope > android' 카테고리의 다른 글
[Android] NoSuchMethodError 해결 방법 (0) | 2024.05.20 |
---|---|
[Android] 안드로이드 build.gradle.kts 설정 방법, build.gradle.kts (0) | 2024.05.17 |
[Android/Kotlin] onBackPressed(), deprecated, 대용, onBackPressedDispatcher (0) | 2024.04.12 |
[Android] java.security.InvalidKeyException: Unsupported key size: 43bytes Error 에러 (0) | 2024.03.14 |
[Android] 알림 제거 방지, setOngoing, NotificationCompat.Builder (0) | 2023.07.10 |
댓글