안드로이드 카카오 지도 사용시 메모리 크래시 제발 답변 부탁드립니다

아래와 같은 버그가, 공식 샘플에서도 납니다.
정확한 현상은 반복적으로 폴리 아이템을 그렸다 지웠다 하는 경우구요.
그리기 전 1초 딜레이, 폴리아이템 그리고나서 1초 딜레이, 새로 아이템을 mapview에 add하는 로직입니다.
image

수백건이 에러보고로 올라오고 있는데 어떻게 해야할 지 모르겠네요. 로직 한번 수행시 마다 캐시 초기화를 선행으로 하게되면 문제는 발생하지 않으나. 정말 문제가 발생하지 않는 수준인 것이지 고객들이 사용하기에는 엄청난 문제가 있습니다.

  • 지도를 새로 다운받느라 깜빡임 현상
  • 데이터 사용량의 과다 증대

반드시 해결이 필요해보입니다.
그리고 이 이슈가 양은 적지만 몇년 전 부터 있었던 것 같은데 혹시 아직 원인조차 파악 이 안되고 있는 것인지요?

관련 코드는 Polyline의 좌표를 받아 화면에 그릴 Polygon을 계산 하고 만드는 함수인데요. 이 부분에서 크래시가 발생하는 것으로 이해가 되는데 한번에 추가 하는 Polyline의 좌표 개수가 어느정도 규모 일까요? 그리고 Polyline을 모두 지울때 까지 누적되는 총 량의 크기도 어느 정도인지 알 수 있을까요?

1개를 지운 뒤 1개를 다시 그립니다. 화면에 표기되는 폴리라인은 언제나 1개 입니다.

최초 1초 딜레이 → 폴리라인 remove → 1초 쉼 → 폴리라인 add 이렇게 진행했습니다.

누적에 따른 크래시는 랜덤하게 나타납니다.

추가 하시는 Polyline의 좌표 개수가 어느 정도 되나요?

좌표 개수 라는 의미가 어떤걸까요?
하나의 폴리 라인을 그리기위해 add point를 몇번 호출하는지? 라면
최소 2개이고, 최대3개입니다.
시작 - 도착

혹시 재현이 안 된다면 제가 코드 작성해서 샘플 전달 드리도록 하겠습니다.

네 관련해서 조사 중인데요. 관련 코드는 지난 수년간 수정된 이력이 없는 코드라 특정 단말에서 유독 그런 것인지 등에 대해 조사 중에 있습니다. 재현이 잘되는 단말 정보와 샘플 코드를 알려 주실 수 있으면 조사에 참고 하도록 하겠습니다.

해결책을 빠르게 드리지 못한 점 양해 부탁 드리고 조사 결과 나오면 회신 드리겠습니다.

답변 감사드립니다.

image

Rx를 통해 500ms로 지속적으로 폴리라인을 그리게 두었습니다.
저희 서비스에서 gps 위치변화에 따라 실시간으로 그려져야하기 때문에 동일한 방식을 재현하기 위함힙니다.

500ms, 100ms, 1000ms 상관없이 랜덤하게 폴리라인을 그리는 로직이 반복되다보면 해당 크래시가 발생하게 됩니다.

rx라이브러리는 아래 버전입니다.
rxjava 2.2.21
rxandroid 2.1.1

답변 감사합니다. 부디 분석하시는데 도움되시길 바라겠습니다.
더 필요한 것이 있다면 전달 주세요 !
감사합니다.

재현에 성공은 했습니다. Polyline에 좌표수가 많다면 그럴 수도 있는데 갯수가 많지도 않은 상황에서 발생하고 있는 것으로 보여 다른 복합적인 이슈가 있는 것으로 판단이 되는데요. 검토 진행해 보고 회신 드리도록 하겠습니다. 감사합니다.

1개의 좋아요

기종은 갤럭시 S23 울트라, S23 같은 최신 기종에서 크래시 발생 빈도가 되게 높은 편이고
상대적으로 구형 단말 경우는 꽤 오래 버틸 수 있습니다. ( LG G5 , 갤 A52S 등등 )

카카오 담당자님, 안녕하세요.

이 이슈 검토 결과를 알 수 있을까요?
당사 앱 내에서 카카오맵 옵션을 이용중이신 고객들에게 랜덤하게 Crash가 계속 발생중이고, 고객센터를 통한 CS 인입으로 유관부서의 업무에 큰 지장이 있는 상황이기도 하며, 사용자 리뷰를 통한 불평과 앱 평가 하락으로 회사의 평판도 안좋아지고 있는 상황이어서 이 문제를 심각하게 보고 있습니다.

카카오맵 UX에 익숙하신 사용자분들이 많기에 지속적으로 카카오맵을 이용하기를 희망하지만, 빠른 시일내에 해결이 되지 못할 문제라면 다른 지도로 대체 할 수 밖에 없어서 언제쯤 해결 가능할지 여쭙고 싶습니다.

격무에 바쁘시겠지만, 답변 부탁드립니다.

오래 기다리게 해드려 죄송합니다. 이슈 확인했고 수정 및 테스트 했을 때 재현은 안되고 있습니다.
제가 테스트 하는 환경과 다를 수 있어 배포 전 한번 전달 드려 확인 해 보고 싶은데 가능하실까요?

가능 하시면 메일 주소 알려 주시면 전달 드려 보겠습니다.

안녕하세요. 이슈 해결하시느라 고생많으십니다.
정말 반가운 소식이네요!

여기로 전달해주시면 테스트 후 내용 회신드릴 수 있도록 하겠습니다.

고생많으셨고 감사합니다.
오픈 된 공간이라서 메일 전달 받은 이후 메일 주소는 마스킹 처리 하도록 하겠습니다.!

감사합니다.

넵 주신 연락처로 보내 드려 보겠습니다. 주소는 삭제 해 주셔도 됩니다.

1개의 좋아요

메일 드렸습니다.

넵. 내부 팀에 전달해 QA진행 중입니다. 결과 나오면 전달 드리겠습니다. ~

담당자님 안녕하세요. 해당 이슈 내부에서 테스트 완료 했습니다.
크래시 발생하지 않고 정상 통과 되었습니다.

이슈 해결하시느라 고생 많으셨습니다.
감사합니다!

2개의 좋아요