티스토리 뷰

상황

retrofit을 이용한 앱을 테스트하는 과정에서 발생하였습니다.

에러 메시지는 다음과 같습니다.

Caused by: java.lang.IllegalArgumentException: class com.common.retrofit.data.RetrofitTest declares multiple JSON fields named test
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:172)
        at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:102)
        at com.google.gson.Gson.getAdapter(Gson.java:489)
        at retrofit2.converter.gson.GsonConverterFactory.requestBodyConverter(GsonConverterFactory.java:74)
        at retrofit2.Retrofit.nextRequestBodyConverter(Retrofit.java:315)
        at retrofit2.Retrofit.requestBodyConverter(Retrofit.java:293)
        at retrofit2.RequestFactory$Builder.parseParameterAnnotation(RequestFactory.java:778)
        	... 17 more

 

원인

데이터 전송용 객체(VO/DTO)에 중복된 이름의 필드가 존재하여 발생

 

해결

소스 코드 이미지
<test 이름 중복>

에러 메시지가 {RetrofitTest} 클래스의 {test} 필드명이 중복되었다고 나왔습니다.

경로를 따라가 보니  실제로 스크린샷과 같이 중복된 이름이 존재하였습니다.

따라서 중복된 이름을 다른 이름으로 수정하니 정상 동작하였습니다.

 

반응형
댓글
최근에 올라온 글
최근에 달린 댓글