안녕하세요. 버그인지는 모르겠지만 혼자 해결이 안돼서 질문드립니다.
현재 앱은 Flutter의 PlatformView를 이용해서 android, ios 각각 네이티브로 카카오 지도가 구현되어있는 상황입니다.
원래는 잘 동작하다가 어느 시점부터 안드로이드 api 28 미만에서 앱을 실행하면 지도가 제대로 나오지 않는 문제가 나타납니다.
아래는 api 28 미만에서 실행했을때 출력되는 로그입니다.
2024-09-16 23:48:35.936 14838-14843 zygote64 I Do partial code cache collection, code=61KB, data=50KB
2024-09-16 23:48:35.936 14838-14843 zygote64 I After code cache collection, code=61KB, data=50KB
2024-09-16 23:48:35.936 14838-14843 zygote64 I Increasing code cache capacity to 256KB
2024-09-16 23:48:36.017 14838-14905 K3fAApi W EngineHandler stop return. appEngineHandle = 0
2024-09-16 23:48:36.017 14838-14838 PlatformViewsController I Hosting view in a virtual display for platform view: 0
2024-09-16 23:48:36.017 14838-14838 PlatformViewsController I PlatformView is using SurfaceTexture backend
2024-09-16 23:48:36.023 14838-14906 NetworkSecurityConfig D No Network Security Config specified, using platform default
2024-09-16 23:48:36.024 14838-14906 K3fAApi D —> RequestHeader(https://dapi.kakao.com/v2/maps/vector/auth) {Accept=[application/json], Authorization=[KakaoAK {{key 출력되는 자리}}], KA=[sdk/8.0.0 mapSdk/2.9.5 os/android-26 lang/en-US device/Android SDK built for arm64 origin/s2wnvBgPpJctThpWlNM8vlpLGiw= android_pkg/{{package 출력되는 자리}}]}
2024-09-16 23:48:36.025 14838-14908 K3fAApi D —> RequestHeader(https://dapi.kakao.com/v2/maps/vector/auth) {Accept=[application/json], Authorization=[KakaoAK {{key 출력되는 자리}}], KA=[sdk/8.0.0 mapSdk/2.9.5 os/android-26 lang/en-US device/Android SDK built for arm64 origin/s2wnvBgPpJctThpWlNM8vlpLGiw= android_pkg/{{package 출력되는 자리}}]}
2024-09-16 23:48:36.033 14838-14907 K3fAApi W EngineHandler stop return. appEngineHandle = 0
2024-09-16 23:48:36.034 14838-14838 PlatformViewsController W Unexpected platform view context for view ID 0; some functionality may not work correctly. When constructing a platform view in the factory, ensure that the view returned from PlatformViewFactory#create returns the provided context from getContext(). If you are unable to associate the view with that context, consider using Hybrid Composition instead.
2024-09-16 23:48:36.034 14838-14913 K3fAApi D —> RequestHeader(https://dapi.kakao.com/v2/maps/vector/auth) {Accept=[application/json], Authorization=[KakaoAK {{key 출력되는 자리}}], KA=[sdk/8.0.0 mapSdk/2.9.5 os/android-26 lang/en-US device/Android SDK built for arm64 origin/s2wnvBgPpJctThpWlNM8vlpLGiw= android_pkg/{{package 출력되는 자리}}]}
2024-09-16 23:48:36.038 14838-14850 D HostConnection::get() New Host Connection established 0x7bc5231820, tid 14850
2024-09-16 23:48:36.046 14838-14911 D HostConnection::get() New Host Connection established 0x7ba9fafae0, tid 14911
2024-09-16 23:48:36.050 14838-14912 K3fAApi W EngineHandler stop return. appEngineHandle = 0
2024-09-16 23:48:36.051 14838-14916 K3fAApi D —> RequestHeader(https://dapi.kakao.com/v2/maps/vector/auth) {Accept=[application/json], Authorization=[KakaoAK {{key 출력되는 자리}}], KA=[sdk/8.0.0 mapSdk/2.9.5 os/android-26 lang/en-US device/Android SDK built for arm64 origin/s2wnvBgPpJctThpWlNM8vlpLGiw= android_pkg/{{package 출력되는 자리}}]}
2024-09-16 23:48:36.072 14838-14915 D HostConnection::get() New Host Connection established 0x7ba15e2060, tid 14915
2024-09-16 23:48:36.075 14838-14915 EGL_emulation D eglCreateContext: 0x7bb8c51600: maj 3 min 0 rcv 3
2024-09-16 23:48:36.078 14838-14915 EGL_emulation D eglMakeCurrent: 0x7bb8c51600: ver 3 0 (tinfo 0x7bb8d468a0)
2024-09-16 23:48:36.081 14838-14915 K3fAApi D AppSpec : High spec
2024-09-16 23:48:36.081 14838-14915 K3fCore I app diplay scale: 1.375000
2024-09-16 23:48:36.081 14838-14915 K3fAApi V + e s(2.9.5, f95e4aae, c908ed058 1.375000, c{{package 출력되는 자리}})
2024-09-16 23:48:36.083 14838-14915 DiskCache I DiskCache instance count : 1
2024-09-16 23:48:36.083 14838-14915 DiskCache I DB multithreading mode set to SQLITE_CONFIG_SINGLETHREAD
2024-09-16 23:48:36.089 14838-14878 EGL_emulation D eglMakeCurrent: 0x7bbb842aa0: ver 3 0 (tinfo 0x7bbb8c7da0)
2024-09-16 23:48:36.089 14838-14915 DiskCache I DiskCache db(/data/user/0/{{package 출력되는 자리}}/cache/vectormap/cache/db/cache.db) opened.
2024-09-16 23:48:36.090 14838-14915 DiskCache I Buffer initialize elapsed time : 0, buffer size : 0
2024-09-16 23:48:36.090 14838-14915 DiskCache I DiskCache initialized
2024-09-16 23:48:36.092 14838-14915 K3fCore I DownloadManager initialized
2024-09-16 23:48:36.137 14838-14915 K3fCore I >>> Initialize appEngine[RELEASE]{1726498116}
2024-09-16 23:48:36.145 14838-14915 K3fCore I >>> Start appEngine[RELEASE]{1726498116}
2024-09-16 23:48:36.145 14838-14915 K3fCore I android high
2024-09-16 23:48:36.149 14838-14915 DiskCache I DiskCache instance count : 2
2024-09-16 23:48:36.150 14838-14915 DiskCache I Buffer initialize elapsed time : 0, buffer size : 0
2024-09-16 23:48:36.150 14838-14915 DiskCache I DiskCache initialized
2024-09-16 23:48:36.150 14838-14915 K3fCore I DownloadManager initialized
2024-09-16 23:48:36.151 14838-14915 K3fCore I start to make a map view
2024-09-16 23:48:36.153 14838-14915 K3fAApi V + e c (1080, 1929, openmap)
2024-09-16 23:48:36.153 14838-14915 K3fCore I Engine{1726498116} resumed.
2024-09-16 23:48:36.154 14838-14915 K3fAApi V - allViewport(1080, 1929)
2024-09-16 23:48:36.161 14838-14916 K3fAApi V ← {null=[HTTP/1.1 200 OK], Connection=[keep-alive], Content-Length=[0], Date=[Mon, 16 Sep 2024 14:48:39 GMT], strict-transport-security=[max-age=31536000; includeSubDomains], X-Android-Received-Millis=[1726498116160], X-Android-Response-Source=[NETWORK 200], X-Android-Selected-Protocol=[http/1.1], X-Android-Sent-Millis=[1726498116129], X-Request-Id=[e19826fb454c5ec17efa4e59da61b789]}
2024-09-16 23:48:36.161 14838-14906 K3fAApi V ← {null=[HTTP/1.1 200 OK], Connection=[keep-alive], Content-Length=[0], Date=[Mon, 16 Sep 2024 14:48:39 GMT], strict-transport-security=[max-age=31536000; includeSubDomains], X-Android-Received-Millis=[1726498116160], X-Android-Response-Source=[NETWORK 200], X-Android-Selected-Protocol=[http/1.1], X-Android-Sent-Millis=[1726498116133], X-Request-Id=[44dc5fe1e286d8ba653be086c11dde96]}
2024-09-16 23:48:36.164 14838-14913 K3fAApi V ← {null=[HTTP/1.1 200 OK], Connection=[keep-alive], Content-Length=[0], Date=[Mon, 16 Sep 2024 14:48:39 GMT], strict-transport-security=[max-age=31536000; includeSubDomains], X-Android-Received-Millis=[1726498116164], X-Android-Response-Source=[NETWORK 200], X-Android-Selected-Protocol=[http/1.1], X-Android-Sent-Millis=[1726498116133], X-Request-Id=[160429e4501c100957ae01860a2493df]}
2024-09-16 23:48:36.168 14838-14908 K3fAApi V ← {null=[HTTP/1.1 200 OK], Connection=[keep-alive], Content-Length=[0], Date=[Mon, 16 Sep 2024 14:48:39 GMT], strict-transport-security=[max-age=31536000; includeSubDomains], X-Android-Received-Millis=[1726498116167], X-Android-Response-Source=[NETWORK 200], X-Android-Selected-Protocol=[http/1.1], X-Android-Sent-Millis=[1726498116135], X-Request-Id=[aec66df965ca9b3aa80e02abc7abbcea]}
2024-09-16 23:48:36.182 14838-14926 K3fCore I request time out
2024-09-16 23:48:36.201 14838-14915 K3fCore I onRenderViewFailure
2024-09-16 23:48:36.202 14838-14838 Map Callback D error RenderView Create Failure(map_b55c9a33-e3e4-46fa-b13c-cf3dd12c9fb5).
2024-09-16 23:48:36.202 14838-14838 System.err W com.kakao.vectormap.RenderViewException: RenderView Create Failure(map_b55c9a33-e3e4-46fa-b13c-cf3dd12c9fb5).
2024-09-16 23:48:36.202 14838-14838 System.err W at com.kakao.vectormap.internal.MapViewHolder.onRenderViewResult(MapViewHolder.java:97)
2024-09-16 23:48:36.202 14838-14838 System.err W at com.kakao.vectormap.internal.EngineHandler.render(Native Method)
2024-09-16 23:48:36.202 14838-14838 System.err W at com.kakao.vectormap.internal.EngineHandler.render(EngineHandler.java:140)
2024-09-16 23:48:36.202 14838-14838 System.err W at com.kakao.vectormap.internal.GLMapRenderer.onDrawFrame(GLMapRenderer.java:110)
2024-09-16 23:48:36.202 14838-14838 System.err W at com.kakao.vectormap.graphics.gl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1646)
2024-09-16 23:48:36.202 14838-14838 System.err W at com.kakao.vectormap.graphics.gl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1345)
카카오맵 sdk를 사용하기 위한 인터넷 권한, 아키텍쳐 조건 역시 문제없이 충족합니다.
테스트를 진행한 에뮬레이터는 다음과 같습니다.
api 26 에뮬레이터 정보
Properties
avd.ini.displayname Pixel 3a API 26
avd.ini.encoding UTF-8
AvdId Pixel_3a_API_26
disk.dataPartition.size 6442450944
fastboot.chosenSnapshotFile
fastboot.forceChosenSnapshotBoot no
fastboot.forceColdBoot no
fastboot.forceFastBoot yes
hw.accelerometer yes
hw.arc false
hw.audioInput yes
hw.battery yes
hw.camera.back virtualscene
hw.camera.front emulated
hw.cpu.ncore 4
hw.device.hash2 MD5:0e6953ebf01bdc6b33a2f54746629c50
hw.device.manufacturer Google
hw.device.name pixel_3a
hw.dPad no
hw.gps yes
hw.gpu.enabled yes
hw.gpu.mode auto
hw.initialOrientation Portrait
hw.keyboard yes
hw.lcd.density 440
hw.lcd.height 2220
hw.lcd.width 1080
hw.mainKeys no
hw.ramSize 1536
hw.sdCard yes
hw.sensors.orientation yes
hw.sensors.proximity yes
hw.trackBall no
image.androidVersion.api 26
image.sysdir.1 system-images/android-26/default/arm64-v8a/
PlayStore.enabled false
runtime.network.latency none
runtime.network.speed full
showDeviceFrame yes
skin.dynamic yes
tag.display Default Android System Image
tag.id default
vm.heapSize 228
api 28 에뮬레이터 정보
Properties
avd.ini.displayname Pixel 3a API 28
avd.ini.encoding UTF-8
AvdId Pixel_3a_API_28
disk.dataPartition.size 6442450944
fastboot.chosenSnapshotFile
fastboot.forceChosenSnapshotBoot no
fastboot.forceColdBoot yes
fastboot.forceFastBoot no
hw.accelerometer yes
hw.arc false
hw.audioInput yes
hw.battery yes
hw.camera.back virtualscene
hw.camera.front emulated
hw.cpu.ncore 4
hw.device.hash2 MD5:0e6953ebf01bdc6b33a2f54746629c50
hw.device.manufacturer Google
hw.device.name pixel_3a
hw.dPad no
hw.gps yes
hw.gpu.enabled yes
hw.gpu.mode auto
hw.initialOrientation portrait
hw.keyboard yes
hw.lcd.density 440
hw.lcd.height 2220
hw.lcd.width 1080
hw.mainKeys no
hw.ramSize 2048
hw.sdCard yes
hw.sensors.orientation yes
hw.sensors.proximity yes
hw.trackBall no
image.androidVersion.api 28
image.sysdir.1 system-images/android-28/google_apis_playstore/arm64-v8a/
PlayStore.enabled true
runtime.network.latency none
runtime.network.speed full
showDeviceFrame yes
skin.dynamic yes
tag.display Google ARM64-V8a Play
tag.displaynames Google ARM64-V8a Play
tag.id google_apis_playstore
tag.ids google_apis_playstore
vm.heapSize 256