본문 바로가기

나의 플랫폼/안드로이드

[Kotlin] Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter intent

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter intent


혹시 Kotlin을 쓰시다가 위와 같은 에러를 보신적 있으신가요??


내용을 보면 Parameter 중에 Notnull 인데 null이 넘어 온다는 의미 네요.

그리고 그 Parameter는 intent 라는 이야기 입니다.


에러가 발생한 부분은 Service 에서 아래 함수 때문이네요.

override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
return super.onStartCommand(intent, flags, startId)
}

위 함수는 모두 잘 아시는 onStartCommand 함수 입니다.

무엇이 잘못 되었을까요???


아마 눈치 빠르신 분들은 바로 아실 수 있으실꺼에요~


아래와 같이 수정을 해야 합니다.


override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
return super.onStartCommand(intent, flags, startId)
}


intent를 Intent? 로 정의를 해야 합니다.


null이 올 수도 있다고 정의를 해야 하죠.


제가 override를 그대로 상속 받은게 아니라 java 파일을 가져다가 Kotlin으로 컨버팅 시켰더니 이런 오류가 발생 하네요.


게다가 이런 오류는 컴파일에 발생하는게 아니라 런타임중에 발생 하고


또한 간단하면서도 쉽게 눈에 들어오지 않는 오류 입니다.


참고 하시면 좋을 것 같아 공유 드려요.