Вот мой код. Я пропускаю некоторые части кода и просто сосредотачиваюсь на важных. Пожалуйста, дайте мне знать, если вам нужна другая часть .:
Код: Выделить всё
fun HomeView(
viewModel: LocationViewModel,
context: Context,
locationUtils: LocationUtils){
//getting the location from the viewModel
val location = viewModel.location.value
//transforming the coordinates into an address with geocode
val address = location?.let {
locationUtils.reverseGeocodeLocation(location)
}
//declaring this variable to use it at cameraPosition
val userLocation = remember {
mutableStateOf(LatLng(location!!.latitude, location.longitude))
}
//declaring the cameraPosition
// this is when the error occurs, because if I comment out this line the Exception doesn´t appers
val cameraPositionState = rememberCameraPositionState{
position = CameraPosition.fromLatLngZoom(userLocation.value, 10f)
}
Scaffold(
topBar = { AppTopBar(title = "Map")},
){ innerPadding ->
Column(
modifier = Modifier.padding(innerPadding)) {
GoogleMap(
modifier = Modifier
.fillMaxWidth()
.padding(vertical = 16.dp)
.height(600.dp),
cameraPositionState = cameraPositionState
)
< /code>
locationData: < /p>
data class LocationData( val latitude: Double, val longitude: Double )viewmodel:
Код: Выделить всё
class LocationViewModel: ViewModel() {
private val _location = mutableStateOf(null)
val location : State = _location
fun updateLocation(newLocation : LocationData){
_location.value = newLocation
}
}
Я был бы очень благодарен, если кто -то поможет мне знать, почему это происходит и понять, как это избежать.
Добавление? или !! не работает.
Я Попробуйте сделать Latitude: Double?
Код: Выделить всё
val userLocation = remember {
mutableStateOf(location?.latitude?.let { location.longitude?.let { it1 -> LatLng(it, it1) } })
}
val cameraPositionState = rememberCameraPositionState{
position = userLocation.value?.let { CameraPosition.fromLatLngZoom(it, 10f) }!!
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... p-crashing
Мобильная версия