본문 바로가기
📱| Android/✅ | 에러해결

[Android, Kotlin] open api 사용 중 발생한 java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.collections.CollectionsKt__IterablesKt.collectionSizeOrDefault, parameter <this> 해결

by immgga 2023. 3. 21.

공공데이터포털 api를 호출하는 공부를 하다가 또(오)류를 만났다.

오류의 내용을 보면

java.lang.NullPointerException: Parameter specified as non-null is null: method kotlin.collections.CollectionsKt__IterablesKt.collectionSizeOrDefault, parameter <this>

대충 어떤 메서드의 값이 null이라는 오류 같았는데

httplogginginterceptor에서는 api 결과가 잘 나왔었다...

 

 

아무튼 필자가 오류를 해결한 방법은

필자는 api를 받아올 data class에다가 @SerializedName을 써서 api에서 받아올 필드를 정의해 줬었는데

data class Body(
    @SerializedName("fineDustItem") val fineDustItems: List<FineDustItem>,
    @SerializedName("numOfRows") val numOfRows: Int,
    @SerializedName("pageNo") val pageNo: Int,
    @SerializedName("totalCount") val totalCount: Int
)

여기서 fineDustItems의 필드이름을 잘못 적어서 이 오류가 난 것이다;;

fineDustItem이 아닌 Items로 필드명을 변경해주었다.

 

 

수정 후:

data class Body(
    @SerializedName("items") val fineDustItems: List<FineDustItem>,
    @SerializedName("numOfRows") val numOfRows: Int,
    @SerializedName("pageNo") val pageNo: Int,
    @SerializedName("totalCount") val totalCount: Int
)

 

 

앞으로 json의 필드명을 확실히 보고 필드명을 쓰도록 하자...

728x90

댓글