본문 바로가기

Android/에러

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

0. 에러가 발생했다.

그동안 계속 프로그램이 잘 돌아가다가 갑자기 이런 에러가 발생했다.

intent를 전달하면서 발생하는 오류였는데, 정말 상상치도 못한 곳에서 에러가 발생하여 놀랐다. 특히 intent는 정말 자주 사용하고 정말 오류가 없었기에 놀랐다. 그리고 해결하는 데에도 좀 걸리긴 했지만, 다행이 오래 걸리진 않았다.

1. 원인

intent로 전달하는 Parcelable 한 객체 안에 null 값이 있으면 이런 오류가 발생한다.
따라서 모두 null 처리를 해주거나, 혹은 이런 값은 전달하지 않아야 한다.
나도 retrofit으로 데이터를 전달받아서 intent로 넘기려고 했는데, 이때 전달받는 데이터에 없는 변수가 하나 있었고, 따라서 null 변수가 매번 데이터에 포함되었었다. 그리고 이를 intent로 넘기려고 하니 에러가 났던 것이다.

2. 해법

따라서 이 변수를 없애고 실행하니 잘 되었다.

물론, 만일 필요한 변수인데 null로도 오는 경우가 있다면, null 처리를 해주면 된다.

특히 Parcelable 한 객체를 넘기는 경우가 자주 있는데, 이때에도 꼭 변수 자체에 null 처리를 하거나, null이 되는 값을 최대한 전달하지 않도록 주의하면 된다.

728x90
반응형