mapbox / mapbox/mapbox-maps-android
MapboxSDKCommon.getContext crash
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Kotlin
- Estrellas
- 578
- Forks
- 161
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
## Environment
- Android OS version: 14
- Devices affected: Mainly Samsung devices
- Maps SDK Version: 10.5.0
## Observed behavior and steps to reproduce
In crashlytics I receive a bunch of crashes from a small amount of users using my app where the app randomly crashes with the following stacktrace:
```
Exception java.lang.ExceptionInInitializerError:
at com.mapbox.common.location.LocationUpdatesReceiver$service$2.invoke (LocationUpdatesReceiver.kt:10)
at com.mapbox.common.location.LocationUpdatesReceiver$service$2.invoke (LocationUpdatesReceiver.kt:9)
at kotlin.SynchronizedLazyImpl.getValue (LazyJVM.kt)
at com.mapbox.common.location.LocationUpdatesReceiver.getService (LocationUpdatesReceiver.kt)
at com.mapbox.common.location.LocationUpdatesReceiver.onReceive (LocationUpdatesReceiver.kt)
at android.app.ActivityThread.handleReceiver (ActivityThread.java:4719)
at android.app.ActivityThread.-$$Nest$mhandleReceiver
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2448)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loopOnce (Looper.java:257)
at android.os.Looper.loop (Looper.java:368)
at android.app.ActivityThread.main (ActivityThread.java:8839)
at java.lang.reflect.Method.invoke
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:572)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1049)
Caused by Bb.e: lateinit property appContext has not been initialized
at com.mapbox.common.MapboxSDKCommon.getContext (MapboxSDKCommon.kt)
at com.mapbox.common.location.LocationServiceImpl. (LocationServiceImpl.kt)
```
From what I was able to gather this happens at random, sometimes when the app is backgrounded or sometimes when the app is left open. I tried many combinations to get it to happen to me but I myself am unable to reproduce it or even trigger it.
I'm not doing anything special, below is my code to initialize the map using Compose:
```
val mapState = rememberMapState {
gesturesSettings = GesturesSettings.Builder()
.setPinchScrollEnabled(false)
.build()
}
MapboxMap(
modifier = Modifier.fillMaxSize(),
composeMapInitOptions = ComposeMapInitOptions(
mapOptions = MapOptions.Builder()
.contextMode(ContextMode.UNIQUE)
.viewportMode(ViewportMode.DEFAULT)
.build()
),
mapState = mapState,
scaleBar = { /* No scalebar */ },
logo = { Logo(contentPadding = PaddingValues(20.dp)) },
attribution = {
Attribution(
iconColor = theme.colorScheme.secondary,
contentPadding = PaddingValues(
start = 110.dp,
top = 0.dp,
end = 0.dp,
bottom = 20.dp
)
)
}
) {
// Load the style on the fly.
MapEffect(styleUrl) {
it.mapboxMap.loadStyle(styleUrl)
}
}
```
I receive the styleURL from a viewModel.
Then there's also a button added that toggles the user location. That's being done this way:
```
MapEffect(isShowingUsersLocation) {
it.location.updateSettings {
enabled = isShowingUsersLocation
}
}
```
## Expected behavior
A crash not related to the location update service.
## Notes / preliminary analysis
I run the app through R8, but can't tell if that's the reason of the crashes as I'm unable to reproduce it in either an R8 built or a non R8 built.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con el stack trace a través de LocationUpdatesReceiver.kt e inspecciona MapboxSDKCommon.kt y LocationServiceImpl.kt, centrándote en cuándo se inicializa appContext antes de cargar el servicio de ubicación. Reproduce o razona sobre las rutas de background y receiver descritas en el issue. Se considera completado cuando el servicio de actualización de ubicación ya no se bloquea porque appContext no se ha inicializado.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- android, kotlin
- Área
- mobile-dev
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Tranquilo
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 42/100