카카오 로그인 안드로이드 SDK 에서 User 의 gender 값이 null 입니다

문의 시, 사용하시는 SDK 버전 정보와 디벨로퍼스 앱ID를 알려주세요.

Faq 목록 - 10. Android ( Faq 목록 입니다 ) 먼저 확인해주세요.


카카오 앱 ID : 528156
wellcheckdev

카카오싱크 로그인 개발 중에 있습니다.
안드로이드 카카오로그인 SDK 버전을 사용하여 (com.kakao.sdk:v2-user:2.21.6 )
카카오 로그인을 진행하니

gender 값이 null 로 생성됩니다
상단에 링크한 이슈과 같은 현상입니다.

User(id=1878969127, ..., genderNeedsAgreement=false, gender=null, ...

SDK 버전을 낮추고 실행하면 ( com.kakao.sdk:v2-user:2.21.1)
gender 값이 제대로 나옵니다.

User(id=1878969127, ..., genderNeedsAgreement=false, gender=MALE, ...

이 현상 때문에 하루 날렸습니다.
해당 오류 확인해주시고 수정 부탁드립니다

2025-08-01 19:00:40.443 30774-30774 KakaoViewModel com.example.kakaosdk D 사용자 정보: User(id=, properties={nickname=tim and flip}, ~~~, gender=MALE,

2025-08-01 19:00:40.444 30774-30774 KakaoViewModel com.example.kakaosdk D 성별: MALE

저는 말씀하신 버전도 문제없이 잘표시되네요.

샘플앱 다운로드 받아 테스트 해보시겠어요?

디펜던시 있는 다른 모듈을 함께 업데이트 하셨는지도 확인 부탁드려요.

다운로드 | Kakao Developers 다운로드

2.21.4에서 동일 증상입니다. gender 값이 null로 내려오고 있습니다.

@tim.l
2.21.4에서도 동일하게 gender값이 null로 내려오고 있습니다.
글쓴님 말씀대로 2.21.1로 다운그레이드 하면 정상적으로 내려옵니다.
확인 부탁드립니다.

@developer70

다운로드 | Kakao Developers 다운로드 여기서 예제로 한번 테스트 해주시겠어요?

@tony.mb @woody.ho

1개의 좋아요

sample 실행하면 401 misconfigured invalid android_key_hash 오류가 발생하는데요.
수정해줘야할 것이 있을까요?

‘계정 설정’ 메뉴 들어가셔서 샘플앱 설정 항목에 키해시 등록하시면 정상적으로 동작합니다.

등록을 해도 실행이 잘 안되네요. (401)
Y1L/JoAApC6a+SjxxxxxxxxxxTgd0= 입니다.

서버로그 확인했을 때 키해시 등록하신 계정과 로그인 시도한 계정이 다른 것으로 보여요. 로그인 시도한 계정에 키해시 등록 후 확인 부탁드립니다.

샘플앱에서는 성별 정보가 잘 내려옵니다.
카카오 서비스와 외부 서비스의 권한 관리가 조금 다른 것 같은데요.
카카오 서비스는 세부 권한이 숨겨져 있는 반면, 외부 앱은 세부 권한을 각각 연결된 서비스에서 조정이 가능하더라고요.
여기에서 오는 차이는 없을까요? API 사용은 크게 문제가 없어 보입니다.

확인 감사합니다. 내부적으로 테스트했을 때 이슈가 재현되어서 추가적으로 확인해보도록 하겠습니다. 급하시다면 번거로우시겠지만 2.21.2 이전 버전 사용 부탁드립니다.

감사합니다. 어제 2.21.1 버전 적용해서 핫픽스 진행했습니다.

좀 더 디버깅 해보았을 때 me api 응답으로는 값이 잘 내려오는데,
onComplete 후에 UserResponse 열어보면 gender 값이 null이네요. 맵핑이 제대로 안되는 것 같습니다.
해결되면 공지 부탁드립니다. 수고하세요!

1개의 좋아요

@네모난바퀴 @developer70 cc. @tim.l @woody.ho

제보주신 내용 관련해서 확인된 내용 공유드립니다.

안드로이드용 카카오SDK는 2.21.2 버전부터 내부적으로 사용하는 직렬화/역직렬화 라이브러리로 kotlinx.serialization를 사용하고 있습니다.

카카오SDK에서 사용하는 kotlinx.serialization은 1.6.3 버전인데요, 이슈가 발생한 프로젝트에서 사용하는 다른 라이브러리 혹은 프로젝트 자체적으로 설정된 의존성 설정에 의해 dependency transitive가 발생해 kotlinx.serialization 1.7.0 이상 버전이 적용된 것으로 보여요. 그런데 kotlinx.serialization 1.7.0 이상부터는 kotlin 2.0.0을 사용해야하고, kotlin 2.0.0 버전부터는 k2 컴파일러가 적용되면서 kotlinx.serialization 내부 동작이 변경되어 이슈가 발생한 것으로 보입니다. (SDK 샘플앱은 dependency transitive가 발생하지 않아서 kotlinx.serialization 1.6.3 버전이 적용되어 정상 동작)

카카오SDK 내부에서 enum으로 역직렬화할 때 커스텀 KSerializer를 사용하고 있는데, 구현한 커스텀 KSerializer가 kotlinx.serialization 1.7.0 이상 버전 사용시 enum 으로 제대로 매핑하지 못하는 것을 확인했고, 1.7.0 이상 버전에서도 정상적으로 동작하도록 대응했습니다.

이슈 수정된 SDK는 내일 배포 예정이고, 배포 완료되면 다시 공유드리도록 하겠습니다.

이슈 제보주셔서 감사합니다.

1개의 좋아요

내용 확인 및 수정 안내 감사합니다

1개의 좋아요

@네모난바퀴 @developer70

안녕하세요.

제보주신 이슈 수정된 카카오SDK 2.21.7 버전 배포되었습니다.

이슈 제보주셔서 다시 한번 감사합니다!

1개의 좋아요