안드로이드 카카오맵 14.0.0 오류 답변 좀 부탁드립니다

signal 11 (SIGSEGV), code 1 (SEGV_MAPERR)

mapCore::PolylineOverlayDrawing3::makeOldGraphicsBuffer3()

해당오류가 계속 뜨는데 답변 좀 해주세요… 기다려도 답변을 안해주셔서 다시 올립니다…

1개의 좋아요

@mmadmin 요거 한번 봐주실 수 있을까요?

중복 문의

먼저 올려주신 문의를 늦게 보게 되었네요.

일단 올려 주신 로그로 크래시가 나는 코드를 들여다 보았는데요. 해당 코드는 64비트용으로 컴파일 된 것 이외에는 지난 5~6년간 수정된 이력이 없는 코드입니다. 카카오맵의 이전 버전인 다음지도앱에서도 동일하게 문제 없이 사용하던 코드인데요. 추측하기로는 특정 데이터의 경우에 발생하는 것이 아닌가 싶습니다.

저희 쪽에서도 재현이 안되는 상황이라 문제가 되는 코드가 어디인지 파악이 힘든 상황인데요. 어떤 상황에서 에러가 발생하는지 부가적인 정보를 제공해 주실 수 있으실까요?

저희도 재현이 안되고 있는 상태입니다… 구글 플레이스토어 비정상 종료 로그에 나와 있고 하루에도 몇백건씩 뜨는 오류인데 정작 릴리즈된 버전으로 테스트 할 때는 해당 현상이 도저히 나타나지 않고 있습니다… 해당 에러 로그에 PolylineOverlayDrawing3 이런 문구가 있는걸로 봐서는… polyline을 그릴 때 문제가 되는건가요? 현재 쓰고 있는 버전에서는

MapPolyline m_map_polyline = new MapPolyline();
m_map_polyline.setTag(1000);
m_map_polyline.setLineColor(ObjOrder.getStateRGBColor(_state));

MapPoint startPoint = MapPoint.mapPointWithGeoCoord(_slat, _slng);
MapPoint endPoint = MapPoint.mapPointWithGeoCoord(_elat, _elng);

m_map_polyline.addPoint(startPoint);
m_map_polyline.addPoint(endPoint);
m_map_point_array.add(startPoint); //MapPointBounds로 선언된 전역변수
m_map_point_array.add(endPoint);

m_map_view.addPolyline(m_map_polyline);
이런식으로 선을 그려준 뒤 위치가 바뀌면

m_map_view.removeAllPolylines();
해당 함수를 불러서 초기화 시켜주고 다시 그려주는데 계속 반복적으로 하다가 생기는 오류일까요…?

네 콜스택의 정보는 Polyline 그리는 코드가 맞습니다.
올려주신 내용의 코드만으로는 문제가 될 것 같진 않은데요. 혹시 저 코드가 여려번 반복해서 실행될 수가 있을까요?

네 해당코드가 여러번 반복되서 실행 될 수 있습니다. 하지만 실행 하기전 m_map_view.removeAllPolylines();을 우선적으로 실행을 하고 있는데 혹시 문제가 될 여지가 있습니까?

UI 쓰레드와 다른 쓰레드에서 실행이 되는 구조라 짧은 시간 내에 반복해서 실행이 된다면 문제가 될 가능성이 보여서 문의 뜨렸었는데요. removeAllPolylines() 호출 이후 약간의 시간 텀을 주는 형태로 변경 테스트가 가능 하실까요?

네 알겠습니다. 답변 감사합니다

64비트 버전 전에도 종종 발생하곤 했습니다. 이 크래시 외에 여러가지가 구글 콘솔에 리포트 됩니다.

이거 해결 됐나요? 저도 같은 문제가 있는데요. 해결이 안되네요… 하루에도 수십건씩…

1개의 좋아요

https://source.android.com/devices/tech/debug
위 주소는 네이티브 덤프에 관한 개발 문서 입니다.

아래는 디버그용으로 에러 뜬 로그입니다.
19114-19114/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
19114-19114/? A/DEBUG: Build fingerprint: 'samsung/herolteskt/herolteskt:8.0.0/R16NW/G930SKSU2ESF1:user/release-keys’
19114-19114/? A/DEBUG: Revision: '8’
19114-19114/? A/DEBUG: ABI: 'arm64’
19114-19114/? A/DEBUG: pid: 17847, tid: 19075, name: GLThread 12208 >>> 패키지명 <<<
19114-19114/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x10
19114-19114/? A/DEBUG: Cause: null pointer dereference
19114-19114/? A/DEBUG: x0 00000076c83d9000 x1 0000000000000000 x2 9ca7f156b283c07b x3 0000000000000000
19114-19114/? A/DEBUG: x4 0000000000000000 x5 00000076c888e4d4 x6 000000003f800000 x7 0000000000000000
19114-19114/? A/DEBUG: x8 9ca7f156b283c07b x9 9ca7f156b283c07b x10 0000000000000005 x11 000000003f800000
19114-19114/? A/DEBUG: x12 0000000000000000 x13 3f80000000000000 x14 000000000000000f x15 0000000000000000
19114-19114/? A/DEBUG: x16 00000076eefd08f8 x17 00000077037294fc x18 00000076ed73cfdc x19 00000076d22b9000
19114-19114/? A/DEBUG: x20 00000076c83d9000 x21 00000076c83d9000 x22 00000076f5434f20 x23 00000076c83d9000
19114-19114/? A/DEBUG: x24 00000076d3752008 x25 00000076d3751f98 x26 00000076d22b9000 x27 0000000000000000
19114-19114/? A/DEBUG: x28 00000076c83d9000 x29 0000000013cc0a40 x30 00000076c82ef57c
19114-19114/? A/DEBUG: sp 00000076d3751c90 pc 00000076c82eccf8 pstate 0000000020000000
19114-19114/? A/DEBUG: backtrace:
19114-19114/? A/DEBUG: #00 pc 0000000000113cf8 /data/app/패키지명-FI1KXqVhfCNYkHTth5M1rw==/lib/arm64/libDaumMapEngineApi.so (_ZN7mapCore23PolylineOverlayDrawing322makeOldGraphicsBuffer3Ev+60)
19114-19114/? A/DEBUG: #01 pc 0000000000116578 /data/app/패키지명-FI1KXqVhfCNYkHTth5M1rw==/lib/arm64/libDaumMapEngineApi.so (_ZN7mapCore23PolylineOverlayDrawing321onBuildOverlayDrawingEv+124)
19114-19114/? A/DEBUG: #02 pc 00000000000e6b2c /data/app/패키지명-FI1KXqVhfCNYkHTth5M1rw==/lib/arm64/libDaumMapEngineApi.so (_ZN7mapCore15PolylineOverlay22onDrawMapComponentViewEPNS_18MapGraphicsContextE+148)
19114-19114/? A/DEBUG: #03 pc 00000000000dd21c /data/app/패키지명-FI1KXqVhfCNYkHTth5M1rw==/lib/arm64/libDaumMapEngineApi.so (_ZN7mapCore16MapComponentView4drawEv+76)
19114-19114/? A/DEBUG: #04 pc 0000000000107080 /data/app/패키지명-FI1KXqVhfCNYkHTth5M1rw==/lib/arm64/libDaumMapEngineApi.so (_ZN15mobileToolkitUi22ComponentViewContainer12drawAllViewsERKN13mobileToolkit6Rect2DE+784)
19114-19114/? A/DEBUG: #05 pc 00000000000e16d0 /data/app/패키지명-FI1KXqVhfCNYkHTth5M1rw==/lib/arm64/libDaumMapEngineApi.so (_ZN7mapCore21MapViewOverlayManager12drawAllViewsEv+56)
19114-19114/? A/DEBUG: #06 pc 00000000000e79ec /data/app/패키지명-FI1KXqVhfCNYkHTth5M1rw==/lib/arm64/libDaumMapEngineApi.so (_ZN7mapCore16MapRenderManager8drawViewEv+168)
19114-19114/? A/DEBUG: #07 pc 00000000000e88f0 /data/app/패키지명-FI1KXqVhfCNYkHTth5M1rw==/lib/arm64/libDaumMapEngineApi.so (_ZN7mapCore14MapViewManager8drawViewEv+80)
19114-19114/? A/DEBUG: #08 pc 000000000010d048 /data/app/패키지명-FI1KXqVhfCNYkHTth5M1rw==/lib/arm64/libDaumMapEngineApi.so (_ZN7mapCore20MapViewDrawViewEntry7executeEv+12)
19114-19114/? A/DEBUG: #09 pc 000000000010df20 /data/app/패키지명-FI1KXqVhfCNYkHTth5M1rw==/lib/arm64/libDaumMapEngineApi.so (_ZN7mapCore12MapLoopEntry6invokeENS_12MapLoopStateE+128)
19114-19114/? A/DEBUG: #10 pc 000000000010e19c /data/app/패키지명-FI1KXqVhfCNYkHTth5M1rw==/lib/arm64/libDaumMapEngineApi.so (_ZN7mapCore14MapLoopManager6onLoopEv+164)
19114-19114/? A/DEBUG: #11 pc 00000000000bfc14 /data/app/패키지명-FI1KXqVhfCNYkHTth5M1rw==/lib/arm64/libDaumMapEngineApi.so (Java_net_daum_mf_map_n_api_internal_NativeMapGraphicsViewGles_onDrawMapView+12)
19114-19114/? A/DEBUG: #12 pc 0000000000025b38 /data/app/패키지명-FI1KXqVhfCNYkHTth5M1rw==/oat/arm64/base.odex (offset 0x1f000)

위와 같이 저희 앱소스가 아닌 카카오측에서 개발한 네이티브 소스에서 뜨는 오류인데 해당 오류를 해결하려면 그냥 polyline을 안쓰거나 카카오측에서 문제를 찾고 업데이트를 해주는 방법 밖에 없을 것 같네요…

추가로 로그를 찍어봤는데 remove_poly_line -> add_poly_line -> 1초 -> remove_poly_line -> add_poly_line -> 1초 -> remove_poly_line -> add_poly_line -> 1초 ->… 이런식으로 로그가 찍히다가 위와 같이 오류가 발생했네요… add와 remove를 할 때 synchronized 로 락 걸어서 해봐도 동일하고… 현재로썬 갱신을 안하는 것 말고는 방법이 없는 것 같습니다.

1개의 좋아요

removePolylines 실행한 후 0.1 초 딜레이를 줬는데, 여전히 발생합니다. 안드로이드 9.0 에서 대부분 발생하는거 같은데요.

테스트 했는데 여전히 안됩니다

Fatal Exception: java.lang.NullPointerException: Attempt to invoke interface method ‘void net.daum.android.map.openapi.auth.OpenAPIKeyAuthenticationWebService$OpenAPIKeyAuthenticationResultListener.onAuthenticationResultReceived(int, java.lang.String, java.lang.String, java.lang.String, java.lang.String)’ on a null object reference
at net.daum.android.map.openapi.auth.OpenAPIKeyAuthenticationWebService$1.run(OpenAPIKeyAuthenticationWebService.java:198)

Fatal Exception: java.lang.NullPointerException: Attempt to invoke interface method ‘void net.daum.android.map.openapi.auth.OpenAPIKeyAuthenticationWebService$OpenAPIKeyAuthenticationResultListener.onAuthenticationErrorOccured()’ on a null object reference
at net.daum.android.map.openapi.auth.OpenAPIKeyAuthenticationWebService$1.run(OpenAPIKeyAuthenticationWebService.java:184)

위 두개도 해결부탁 드립니다. 최소 피드백이라도 좀…
위에껀 android 8,9 주로 9에서 발생하고 아래껀 주로 7,9 주로 7에서 발생합니다.