currentLocationTrackingMode 설정 시 에러

//코드
private val locationActivityResultLauncher = registerForActivityResult(
ActivityResultContracts.RequestMultiplePermissions()) { permissionMap →
if (permissionMap.all { it.value == true }) {
setTrackingMode()
} else {
Toast.makeText(requireContext(), “허가 안 됨”, Toast.LENGTH_SHORT).show()
}
}
private fun setTrackingMode() {
mapView.currentLocationTrackingMode =
MapView.CurrentLocationTrackingMode.TrackingModeOnWithHeading
}
AndroidManifest.xml에서 퍼미션 설정도 해줬고, 런타임에서 퍼미션 요청해서 사용자에게 위치 퍼미션 획득했습니다. currentLocationTrackingMode를 TrackingModeOnWithHeading으로 set하면 에러가 발생하며 앱이 죽어버리는데, 무슨 문제일까요? MapViewLocationManager이 초기화 안 된다고 나오네요.
//로그캣
2021-10-09 17:25:33.889 10301-10301/com.mylittleproject.gyeonggimoneymap E/MapViewLocationManager: init failed
2021-10-09 17:25:33.889 10301-10301/com.mylittleproject.gyeonggimoneymap D/AndroidRuntime: Shutting down VM
2021-10-09 17:25:33.894 10301-10301/com.mylittleproject.gyeonggimoneymap E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.mylittleproject.gyeonggimoneymap, PID: 10301
java.lang.NullPointerException: Attempt to invoke virtual method ‘java.util.List android.location.LocationManager.getAllProviders()’ on a null object reference
at net.daum.android.map.location.MapViewLocationManager.isLocationAvailable(MapViewLocationManager.java:536)
at net.daum.mf.map.n.api.internal.NativeMapLocationManager.setCurrentLocationTrackingMode(Native Method)

테스트해보니 안드로이드 9 이하 기기에서는 잘 되는데 11 기기에서만 이럽니다. 10 기기는 테스트를 안 해봤네요.

3개의 좋아요