KA Header IllegalArgumentException 이슈

  • 사용중인 SDK 버전 : com.kakao.sdk:v2-user:2.8.3

tr-TR, az-AZ 등의 언어로 설정된 기기에서
KA 헤더 생성 시, 일부 디바이스명 문자열이 적합하지 않은 모양인지 아래와 같은 IllegalArgumentException 이 발생합니다.
Xiomi REDMİ, GENERAL-MOBİLE, Mİ-A2-LİTE 같이 İ 문자가 있는 디바이스명 기기에서 발생합니다.

Fatal Exception: java.lang.IllegalArgumentException
Unexpected char 0x130 at 98 in KA value: sdk/2.8.3 sdk_type/kotlin os/android-29 lang/tr-TR origin/8AQ/TLclA9JXE/nHTeUk47tp6HE= device/REDMİ-NOTE-8

안녕하세요~

확인을 위해 앱 ID 알려주세요~


앱ID
https://developers.kakao.com/ 의 내 애플리케이션>앱 설정>요약 정보 : 기본정보에 있는 앱 ID
숫자로된 ID 입니다~
ex) 123456

안녕하세요! 앱 ID 는 10233 입니다.

안녕하세요~ 이미 수정이 되어있긴 한데요.
혹시 common 모듈 따로 설치 하시나요?

build.gradle의 dependencies 부분 가능하시다면 공유 부탁 드립니다.

안녕하세요! 말씀하신 common 모듈이 어떤걸 의미하는지 잘 모르겠습니다.
혹시 조금 더 자세히 설명 가능할까요?

아래와 같이 common을 따로 설치 하셨는지가 궁금해서요.(user와 다른 버전으로)

 implementation "com.kakao.sdk:v2-common:2.8.3"

REDMİ-NOTE-8로 사용 했을 경우 2.8.3으로 했을 경우는 저희가 재현이 안되서요.

아 위와같이 common 모듈은 따로 설정하지 않았고,
implementation(“com.kakao.sdk:v2-user:2.8.3”)
이렇게 user 모듈만 추가해서 사용하고 있습니다.

혹시 가지고 계신 테스트 디바이스에서 재현 되시는 건가요?
디바이스 정보 공유 부탁 드려요.

그리고 저 현상 발생 로그 시간 공유 부탁 드립니다.

답변이 늦어 죄송합니다.
Redmi 기기에서 언어를 터키어(Türkçe) 로 변경하고 카카오 로그인 시도하면 재현됩니다.
가장 최근 이슈의 발생시간 및 로그 공유드립니다.

참고로 OkHttp3 버전은 4.9.1 을 사용중입니다.

2021-12-10 11:52:13.142
java.lang.IllegalArgumentException: Unexpected char 0x130 at 98 in KA value: sdk/2.8.3 sdk_type/kotlin os/android-24 lang/tr-TR origin/8AQ/TLclA9JXE/nHTeUk47tp6HE= device/REDMİ-NOTE-4
at okhttp3.Headers$Companion.checkValue(Headers.kt:434)
at okhttp3.Headers$Companion.access$checkValue(Headers.kt:346)
at okhttp3.Headers$Builder.add(Headers.kt:245)
at okhttp3.Request$Builder.addHeader(Request.kt:210)
at com.kakao.sdk.network.KakaoAgentInterceptor.intercept(KakaoAgentInterceptor.kt:34)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:760)

답변 감사 드립니다.

혹시 Redmi 기기에서 Build.MODEL을 로그로 출력하시면 어떤 String이 나오는지 공유 가능 하실까요?

Redmi Note 4
이렇게 출력됩니다.

OkHttp3 4.9.1 버전에서 header 체크하는 checkValue() 링크 첨부드립니다.

재현 되네요~ 수정해서 다음버전에 배포하도록 하겠습니다.
감사합니다.

넵 감사합니다!

안녕하세요 이슈 수정된 2.8.4 버전 배포되었습니다.

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

1개의 좋아요