Changelog for Mapbox Maps SDK for Android
Mapbox welcomes participation and contributions from everyone.
16 KB Page Size Support: Starting with version 11.7.0 and 10.19.0, NDK 27 is supported with dedicated artifacts that include support for 16 KB page sizes. If your app does not require 16 KB page size support, you can keep using our default artifacts without -ndk27 suffix. For more information about our NDK support, see https://docs.mapbox.com/android/maps/guides/#ndk-support
main
Features ✨ and improvements 🏁
- [compose] Add
showHdRoads and colorHdRoads configuration options to the Standard style.
11.32.0-rc.1 September 21, 2026
Bug fixes 🐞
- Fix incorrect and missing metadata in style spec reference
- Fix incorrect usage of the active-anchor expression being silently allowed in filters, paint properties, and non-symbol layers.
- Fix symbol occlusion opacity transitions not honoring the configured placement transition duration, reducing flickering from frequent visibility changes.
Breaking changes ⚠️
TileStore.loadTileRegion() now completes with a TileRegionErrorType.PARTIAL_LOAD failure instead of success when some of the region's resources failed to load.
TileStore.loadTileRegion() now completes with a TileRegionErrorType.PARTIAL_LOAD failure instead of success when some of the region's resources failed to load.
Features ✨ and improvements 🏁
- Fix inaccurate latitude/longitude bounds calculation for the camera when using globe projection.
💫️ Other
- [tile_store] Trigger region loading progress callbacks when the load process gets rate limited
Dependencies
11.31.0 September 17, 2026
Breaking changes ⚠️
- Remove the experimental
raster-allow-draping property from RasterLayer.
Features ✨ and improvements 🏁
- Add experimental MapOptions.emissiveColorPrecision to control emissive color accuracy for draped layers.
- Deprecated
TileStoreImportOptions.getArchiveFileDescriptors() in favor of getArchiveFileDescriptorsArray(), which avoids per-element boxing. The deprecated getter may now return an immutable list when there are 0 or 1 descriptors.
- Deprecated
CustomLayerRenderParameters.getProjectionMatrix() in favor of getProjectionMatrixArray(), which avoids per-element boxing.
Bug fixes 🐞
- Fix a crash when querying rendered or source features whose tile geometry has out-of-range coordinates.
- Fix arbitrary view annotation placement when multiple world copies are visible at low zoom or near the antimeridian: the copy is now chosen by proximity to the viewport center, or by the coordinate a GeoJSON annotation names, and held while it stays placeable. Coordinates authored outside [-180, 180] no longer fail to place.
- Fix an issue where setStyleSourceProperty on a style import's source had no effect: sources with matching URLs merge into the root-level one by default, and the change wasn't applied to it.
- Fix brightness-dependent paint properties not updating after a light or light preset change, such as switching lightPreset in the Standard style.
- Fix Vulkan rendering corruption caused by staging buffers being freed before asynchronous texture uploads completed.
- Ignored SDF images from text-field don't affect collision detection anymore
- Fix requests hanging on stale HTTP/2 connections by proactively evicting unresponsive connections and network transitions.
Dependencies
11.31.0-rc.1 September 07, 2026
Breaking changes ⚠️
- Remove the experimental
raster-allow-draping property from RasterLayer.
Features ✨ and improvements 🏁
- Add experimental MapOptions.emissiveColorPrecision to control emissive color accuracy for draped layers.
- Deprecated
TileStoreImportOptions.getArchiveFileDescriptors() in favor of getArchiveFileDescriptorsArray(), which avoids per-element boxing. The deprecated getter may now return an immutable list when there are 0 or 1 descriptors.
- Deprecated
CustomLayerRenderParameters.getProjectionMatrix() in favor of getProjectionMatrixArray(), which avoids per-element boxing.
Bug fixes 🐞
- Ignored SDF images from text-field don't affect collision detection anymore
- Fix requests hanging on stale HTTP/2 connections by proactively evicting unresponsive connections and network transitions.
Dependencies
11.29.3 September 10, 2026
Dependencies
11.29.2 September 04, 2026
Dependencies
11.29.1 August 27, 2026
Dependencies
11.30.2 September 18, 2026
Dependencies
11.30.1 September 11, 2026
Bug fixes 🐞
- Fix brightness-dependent paint properties not updating after a light or light preset change, such as switching lightPreset in the Standard style.
- Fix Vulkan rendering corruption caused by staging buffers being freed before asynchronous texture uploads completed.
Dependencies
11.30.0 September 03, 2026
Breaking changes ⚠️
- Breaking (Vulkan public preview only): the Vulkan-backed
android-core-vulkan artifact now requires Android 12 (API 31) or later, raised from API 21. Only affects apps opted into the Vulkan preview build.
- Breaking (experimental API only):
tileCover now returns OverscaledTileID instead of CanonicalTileID, so callers can distinguish overscaled tiles from their canonical zoom level and identify tiles that repeat across the antimeridian via wrap.
Features ✨ and improvements 🏁
- Deprecated
RenderThreadStats.totalDroppedFrames. Added totalSkippedVsync, pacedSkippedVsync, and missedMapRenderFrames for an accurate breakdown of frame performance when setMaximumFps() is used.
- Report render-thread frame timing to the Android Dynamic Performance Framework (ADPF) on API 31+ devices, allowing the OS to scale CPU frequency based on actual rendering load.
- Add client-side overzooming for raster-array sources: tiles requested beyond the source's data maxzoom are now cropped from an already-loaded parent tile instead of rendering nothing.
Bug fixes 🐞
- Fix fling ignoring
MapView.setMaximumFps() when useNativeFlingDeceleration is enabled — fling now throttles camera updates to the configured fps cap.
- Fixed a leak where a
MapView and its render thread could remain permanently retained if the underlying Surface never became ready before the view was destroyed.
- Fix compose
ViewAnnotation content not being redrawn when the shape used in Modifier.shadow / Modifier.clip changes.
- Fix a crash (
GeoJsonException: LinearRings need to be made up of 4 or more coordinates.) when querying or interacting with polygon features that contain degenerate geometry.
- Fix map flickering with Vulkan after the app returns from the background.
- Fix a crash caused by use-after-free of the rendering context during teardown.
- Fix potential ANRs during map initialization caused by a JNI call used for UUID generation.
- Fix raster layer rendering precision: color ramp resolution, texel coordinate mapping, and texture filtering now match Mapbox GL JS.
- Fix a crash when a symbol layer uses pixel occlusion mode on terrain with no 3D layers.
- Fix rare crashes on some OEM/OS combinations (e.g. Motorola devices on Android 14-16) caused by SecurityException when registering the activity recognition receiver.
- Internal fixes and performance improvements.
Dependencies
11.30.0-rc.1 August 24, 2026
Breaking changes ⚠️
- Breaking (Vulkan public preview only): the Vulkan-backed
android-core-vulkan artifact now requires Android 12 (API 31) or later, raised from API 21. Only affects apps opted into the Vulkan preview build.
- Breaking (experimental API only):
tileCover now returns OverscaledTileID instead of CanonicalTileID, so callers can distinguish overscaled tiles from their canonical zoom level and identify tiles that repeat across the antimeridian via wrap.
Features ✨ and improvements 🏁
- Deprecated
RenderThreadStats.totalDroppedFrames. Added totalSkippedVsync, pacedSkippedVsync, and missedMapRenderFrames for an accurate breakdown of frame performance when setMaximumFps() is used.
- Report render-thread frame timing to the Android Dynamic Performance Framework (ADPF) on API 31+ devices, allowing the OS to scale CPU frequency based on actual rendering load.
- Add client-side overzooming for raster-array sources: tiles requested beyond the source's data maxzoom are now cropped from an already-loaded parent tile instead of rendering nothing.
Bug fixes 🐞
- Fix fling ignoring
MapView.setMaximumFps() when useNativeFlingDeceleration is enabled — fling now throttles camera updates to the configured fps cap.
- Fixed a leak where a
MapView and its render thread could remain permanently retained if the underlying Surface never became ready before the view was destroyed.
- Fix compose
ViewAnnotation content not being redrawn when the shape used in Modifier.shadow / Modifier.clip changes.
- Fix a crash (
GeoJsonException: LinearRings need to be made up of 4 or more coordinates.) when querying or interacting with polygon features that contain degenerate geometry.
- Fix map flickering with Vulkan after the app returns from the background.
- Fix a crash caused by use-after-free of the rendering context during teardown.
- Fix potential ANRs during map initialization caused by a JNI call used for UUID generation.
- Fix raster layer rendering precision: color ramp resolution, texel coordinate mapping, and texture filtering now match Mapbox GL JS.
- Internal fixes and performance improvements.
Dependencies
11.29.0 August 21, 2026
Features ✨ and improvements 🏁
- [compose] Add coordinate conversion APIs to
MapState: coordinateForPixel, pixelsForCoordinates, coordinatesForPixels, coordinateInfoForPixel, and coordinatesInfoForPixels. Add experimental tileCover to MapViewportState.
- Clarify the documentation of
RasterLayer.rasterColor, rasterColorMix, and rasterColorRange.
- [compose] Add companion object
MapState.clearData() suspend function to clear temporary map data shared across maps using the same data path.
- [compose] Add experimental
GesturesState with per-gesture listeners via GestureInput composable. Provides detectMoveGestures, detectScaleGestures, detectRotateGestures, detectShoveGestures, and detectFlingGesture suspend functions. GesturesState can be created standalone via rememberGesturesState() and assigned to MapState.gesturesState. Exposes isGestureInProgress() and isUserAnimationInProgress() methods. Gesture settings are now accessed through MapState.gesturesState.gesturesSettings; the old MapState.gesturesSettings property is deprecated.
- Promote
SymbolLayer.symbolZOffset to stable.
- Accept an object as config option value.
- Accept an expression as
distance expression argument.
- The
distance expression now accepts an expression (rather than only a literal) as its second argument.
Bug fixes 🐞
- Fix a
NullPointerException crash in location puck animators when AnimationThreadController.useBackgroundThread() is enabled.
- Fix logcat spam from repeated EGL surface create failures when an Android Auto
BufferQueue is abandoned. GLMapboxRenderThread now throttles the retry warning log.
- Fix a permanently black map after an
eglSwapBuffers error. EGLCore no longer skips eglMakeCurrent when a different EGL surface is requested while the context is already current.
- Fix view annotations repositioning/jumping frequently due to lost information about their previous placement.
- Fix border color bleeding onto neighboring line segments when using fake-round joins on very short lines.
- Fix incorrect symbol elevation when 3D buildings are toggled via style config.
- Fix aliasing artifacts on minified dashed lines (e.g., dense zebra-crossing patterns), and fix dashed lines breaking entirely on some Android GPUs (e.g., Mali-G71) due to a precision overflow.
- Fix tiles above an offline pack's max zoom sometimes rendering blank instead of falling back to cache or network.
- Fix
PermissionsManager failing to show the background location permission dialog on Android 11+ (API 30) when requesting all location permissions at once.
- Fix location updates getting stuck when the SDK starts without GPS connectivity and no cached location is available — even after GPS later becomes available — on devices without Google Play Services.
- Fix a crash on Android API 21/22 during HTTP service bootstrap caused by using a
NetworkCapabilities API only available on API 23+.
- Fixed a leak where a
MapView and its render thread could remain permanently retained if the underlying Surface never became ready before the view was destroyed.
- Fix brightness-driven paint properties (such as
icon-image-cross-fade using ["measure-light", "brightness"]) staying frozen at a stale value after repeated lightPreset switches.
- Fix a crash (
LinearRings need to be made up of 4 or more coordinates) when querying or interacting with polygon features whose geometry contains degenerate zero-area rings.
- Fix map flickering after the app returns to the foreground when rendering with Vulkan.
- Fix a crash on map destruction when the persistent OpenGL buffer mapping experimental setting is disabled.
- Fix map detail disappearing when zooming in over an area covered by an offline tile pack: the ambient cache is now consulted before the tile pack serves a stretched coarser tile.
- Fix potential ANRs during map initialization.
- Internal fixes and performance improvements.
Dependencies
11.27.3 August 21, 2026
Bug fixes 🐞
- Internal fixes and performance improvements.
Dependencies
11.28.4 August 20, 2026
Bug fixes 🐞
- Fixed a leak where a
MapView and its render thread could remain permanently retained if the underlying Surface never became ready before the view was destroyed.
Dependencies
11.28.3 August 17, 2026
Bug fixes 🐞
- Internal fixes and performance improvements.
Dependencies
11.27.2 August 13, 2026
Bug fixes 🐞
- Fix potential ANRs caused by the run loop executing a large batch of queued tasks (e.g. style parsing, GeoJSON processing) in one go without yielding back to the system.
- Internal fixes and performance improvements.
Dependencies
11.28.2 August 13, 2026
Bug fixes 🐞
- Internal fixes and performance improvements.
Dependencies
11.28.1 August 12, 2026
Bug fixes 🐞
- Fix symbols remaining elevated instead of dropping to the ground when 3D buildings are hidden via style configuration.
- Internal fixes and performance improvements.
Dependencies
11.29.0-rc.1 August 10, 2026
Features ✨ and improvements 🏁
- [compose] Add coordinate conversion APIs to
MapState: coordinateForPixel, pixelsForCoordinates, coordinatesForPixels, coordinateInfoForPixel, and coordinatesInfoForPixels. Add experimental tileCover to MapViewportState.
- Clarify the documentation of
RasterLayer.rasterColor, rasterColorMix, and rasterColorRange.
- [compose] Add companion object
MapState.clearData() suspend function to clear temporary map data shared across maps using the same data pat.
- [compose] Add experimental
GesturesState with per-gesture listeners via GestureInput composable. Provides detectMoveGestures, detectScaleGestures, detectRotateGestures, detectShoveGestures, and detectFlingGesture suspend functions. GesturesState can be created standalone via rememberGesturesState() and assigned to MapState.gesturesState. Exposes isGestureInProgress() and isUserAnimationInProgress() methods. Gesture settings are now accessed through MapState.gesturesState.gesturesSettings; the old MapState.gesturesSettings property is deprecated.
- Promote
SymbolLayer.symbolZOffset to stable.
- Accept an object as config option value.
- Accept an expression as
distance expression argument.
- The
distance expression now accepts an expression (rather than only a literal) as its second argument.
- Introduce experimental
RasterLayer.rasterColorScale property, resulting in more precise visualization with long-tailed raster-array data source.
Bug fixes 🐞
- Fix a
NullPointerException crash in location puck animators when AnimationThreadController.useBackgroundThread() is enabled.
- Fix logcat spam from repeated EGL surface create failures when an Android Auto
BufferQueue is abandoned. GLMapboxRenderThread now throttles the retry warning log.
- Fix a permanently black map after an
eglSwapBuffers error. EGLCore no longer skips eglMakeCurrent when a different EGL surface is requested while the context is already current.
- Fix view annotations repositioning/jumping frequently due to lost information about their previous placement.
- Fix border color bleeding onto neighboring line segments when using fake-round joins on very short lines.
- Fix incorrect symbol elevation when 3D buildings are toggled via style config.
- Fix aliasing artifacts on minified dashed lines (e.g., dense zebra-crossing patterns), and fix dashed lines breaking entirely on some Android GPUs (e.g., Mali-G71) due to a precision overflow.
- Fix tiles above an offline pack's max zoom sometimes rendering blank instead of falling back to cache or network.
- Fix
PermissionsManager failing to show the background location permission dialog on Android 11+ (API 30) when requesting all location permissions at once.
- Fix location updates getting stuck when the SDK starts without GPS connectivity and no cached location is available — even after GPS later becomes available — on devices without Google Play Services.
- Fix a crash on Android API 21/22 during HTTP service bootstrap caused by using a
NetworkCapabilities API only available on API 23+.
Dependencies
11.28.0 August 06, 2026
Features ✨ and improvements 🏁
- Introduce
LineLayer.lineBorderGradient API to color the border of a line feature with a gradient along its length. Takes precedence over lineBorderColor and requires lineBorderWidth to be greater than zero.
- Expose
line-border-width and line-border-color as public paint properties. They were previously hidden from the style specification.
- Expand the valid field-of-view range from [11, 90] to [1, 90] degrees, allowing much narrower camera FOVs.
Bug fixes 🐞
- Fix view annotations rendering incorrectly or not appearing when the host app's layout direction is RTL.
- Validate URL scheme in
AttributionParser to reject non-http(s) attribution URLs at parse time, preventing malicious style/tile-source attributions from reaching custom attribution consumers via the public API.
- Fix 3D models with a zero vertex alpha channel being rendered fully black.
- Fix double rotation of the FF5C (fullwidth vertical line) character in vertical text.
- Fix tile pack patch application failing when disk space runs out mid-write; the disk quota is now checked and eviction triggered before the patch is applied.
- Internal fixes and performance improvements.
Dependencies
11.27.1 August 04, 2026
Bug fixes 🐞
- Internal fixes and performance improvements.
Dependencies
11.28.0-rc.1 July 27, 2026
Features ✨ and improvements 🏁
- Introduce
LineLayer.lineBorderGradient API to color the border of a line feature with a gradient along its length. Takes precedence over lineBorderColor and requires lineBorderWidth to be greater than zero.
- Expose
line-border-width and line-border-color as public paint properties. They were previously hidden from the style specification.
- Expand the valid field-of-view range from [11, 90] to [1, 90] degrees, allowing much narrower camera FOVs.
Bug fixes 🐞
- Fix 3D models with a zero vertex alpha channel being rendered fully black.
- Fix double rotation of the FF5C (fullwidth vertical line) character in vertical text.
- Fix tile pack patch application failing when disk space runs out mid-write; the disk quota is now checked and eviction triggered before the patch is applied.
- Internal fixes and performance improvements.
Dependencies
11.27.0 July 24, 2026
Features ✨ and improvements 🏁
- Add cross-source HD road elevation for symbols, so road symbols can align to HD elevation data provided by a separate source.
- Add support for animating the map's vertical field of view.
- Improve CPU performance when frequently updating layer properties, such as animating paint and layout values.
- Improve character rotation for some CJK characters in vertical text mode.
Bug fixes 🐞
- [gestures] Fix map snapping back after a pinch-to-zoom-in gesture.
- Fix incorrect placement of Dynamic View Annotations during fast zooming and near tile boundaries when avoid-layers are configured.
- Fix skipped draws (missing geometry on some frames) that could occur while zooming or with shadow-casting layers.
- Fix character rotation for some CJK characters in vertical text rendering mode.
- Fix fling animation moving the camera in the opposite direction of the swipe at low zoom levels.
- Fix flickering single-pixel gaps appearing along route lines at elevation feature boundaries as the camera moves.
- Fix line-aligned labels (such as angled sea names) drifting while panning during the globe-to-mercator zoom transition.
- Fix radial gradients rendering incorrectly when the focal radius is larger than the outer radius.
- Fix view annotations not being considered in collision checks against avoid layers, which could result in incorrect placement.
- Internal fixes and performance improvements.
Dependencies
- Update gl-native to v11.27.0, common to v24.27.0.
- Expand the minimum camera field of view from 11 to 1 degrees.
- [compose] Fix root style properties (
RainState, SnowState, AtmosphereState, TerrainState) not reverting to the loaded style's own value when disabled or removed. Previously the property was either nulled out entirely or left with a stale value; it now resets to what the style shipped, matching iOS behavior.
11.27.0-rc.1 July 13, 2026
Features ✨ and improvements 🏁
- Add cross-source HD road elevation for symbols, so road symbols can align to HD elevation data provided by a separate source.
- Add support for animating the map's vertical field of view.
- Improve CPU performance when frequently updating layer properties, such as animating paint and layout values.
- Improve character rotation for some CJK characters in vertical text mode.
Bug fixes 🐞
- Fix flickering single-pixel gaps appearing along route lines at elevation feature boundaries as the camera moves.
- Fix line-aligned labels (such as angled sea names) drifting while panning during the globe-to-mercator zoom transition.
- Fix radial gradients rendering incorrectly when the focal radius is larger than the outer radius.
- Fix view annotations not being considered in collision checks against avoid layers, which could result in incorrect placement.
- Internal fixes and performance improvements.
Dependencies
11.26.0 July 09, 2026
Breaking changes ⚠️
- Add
CameraAnimatorType.VERTICAL_FOV enum constant. This is a source-breaking change for code that uses an exhaustive when over CameraAnimatorType without an else branch, which will no longer compile until the new case is handled.
Features ✨ and improvements 🏁
- Animate verticalFov along with other camera parameters.
- Introduce new experimental
ViewAnnotationManager.viewAnnotationAvoidRegions which allows to specify rectangular screen regions that view annotations should avoid. View annotations opt in to this behaviour via the new experimental ViewAnnotationOptions.enableAvoidRegions option.
- Improve landmark route cutout rendering to use uniform opacity fade instead of per-fragment dithering, improving visual quality and performance in navigation scenes with 3D landmarks.
Bug fixes 🐞
- Fix a crash that could occur when querying rendered features while map layers were being removed.
- Fix a one-frame flash where layers could briefly disappear while a new shader variant compiled asynchronously.
- Fix continuous tile reparsing for HD road sources using cross-source elevation on a static map, causing sustained CPU usage.
- Fix elevated lines with
line-elevation-reference: "ground" disappearing from view due to incorrect frustum culling over terrain.
- Fix gaps appearing in elevated route line geometry at elevation feature boundaries.
- Internal fixes and performance improvements.
Dependencies
Bug fixes 🐞
- [plugin-indoorselector] Fix scroll position not scrolling to the selected floor when switching to a different building.
11.26.0-rc.1 June 29, 2026
Features ✨ and improvements 🏁
- [compose] Introduce experimental
IndoorSelector composable function available inside MapboxMap, displaying a scrollable floor-selection widget that appears automatically when an indoor building is in view. Exposes IndoorSelectorState for programmatic access to the current floor list and selected floor, and an onFloorClicked callback for reacting to user selections.
- [compose] Add
IndoorSelectorControl headless composable inside MapIndoorSelectorScope: attaches the indoor plugin to an IndoorSelectorState without rendering any UI, enabling custom floor-selector implementations.
- [compose] Add
rotateBy, moveBy, pitchBy, and scaleBy methods to MapViewportState for incremental camera animations.
- [compose] Add
rememberStyleImage(imageId, image9Patch: NinePatchImage) and remember9PatchStyleImage(imageId, bitmap: Bitmap) overloads for nine-patch images.
- Introduce new experimental
ViewAnnotationOptions.enableSymbolLayerCollision option which allows view annotations to hide underlying map symbols to avoid visual clutter.
By default, the full bounding box of the view annotation is used for collision detection. If your annotation has a non-rectangular shape, it is highly recommended to mark the specific subviews that should participate via the new experimental View.mbxViewAnnotationCollisionBox flag.
- Support drawing view annotation collision boxes when
MapView.debugOptions is set to COLLISION.
- Add
TileStore option to configure the ambient cache quota, allowing control over how much disk space is used for ambient cached tile data.
- Animate verticalFov along with other camera parameters.
Bug fixes 🐞
- [compose] Pass the identifier as an input to
rememberSaveable in remember*SourceState, remember*LightState, and rememberTerrainState functions so that changing the identifier correctly recreates the saved state.
- Fix labels missing on some road segments due to multilinestring geometry parts being dropped during label merging.
- Fix View Annotations sometimes failing to appear on short line segments due to collision detection over-rejection.
- Fix worldview filter not applying correctly after being changed at runtime.
- Fix zoom interpolation expressions not working correctly when symbol layer appearances define different zoom stops for the same property.
- Fix icon cross-fade animation not rendering correctly for icons redefined across appearances.
- Fix symbols with elevation or z-offset not displaying when the map is both rotated and pitched.
- Fix inaccurate coordinate conversion when querying geographic coordinates over terrain.
- Fix
SecurityException crash on Android 12 (API 31–32) when the Maps SDK registers location broadcast receivers.
- Fix a potential crash caused by a use-after-free when evicting decompressed tile data from memory.
- Internal fixes and performance improvements.
Dependencies
11.25.2 July 13, 2026
Bug fixes 🐞
- Fix a crash that could occur due to filesystem exceptions during persistent storage initialization.
Dependencies
11.25.1 July 03, 2026
Bug fixes 🐞
- Fix View Annotations sometimes failing to appear on short line segments due to collision detection over-rejection.
- Fix a
SecurityException crash on Android 12 (API 31–32) when the Maps SDK registers location broadcast receivers.
Dependencies
11.21.8 June 25, 2026
Features ✨ and improvements 🏁
- Reduce per-frame rendering overhead when style properties are updated frequently.
Bug fixes 🐞
- Fix a crash caused by dereferencing a null index buffer when drawing symbols.
- Internal fixes and performance improvements.
Dependencies
11.25.0 June 11, 2026
Breaking changes ⚠️
MapView.setMaximumFps and MapSurface.setMaximumFps are now annotated @MainThread. Callers must invoke them from the main thread; off-main callers will see a lint warning.
Features ✨ and improvements 🏁
- [compose] Add Standard
IndoorLabels featureset and indoor configuration options (showIndoor, showIndoorLabels, colorIndoorLabelHighlight, colorIndoorLabelSelect) for the Mapbox Standard style.
- Add
useNativeFlingDeceleration option to GesturesPlugin that uses OverScroller for physics-based fling deceleration instead of the legacy easeTo animation, providing a more natural fling experience.
- Throttle
MapboxMap post destroyed warning logs.
- Expose
verticalFov in CameraOptions, allowing a custom vertical field of view to be set in setCamera, easeTo, and flyTo.
- Allow using color string literals in
interpolate expressions, including when set on style config at runtime.
- Support using
line-progress in line-emissive-strength.
- Add support for zoom-and-feature-dependent appearance conditions.
- Add client-side SD/HD road and traffic conflation, hiding redundant roads based on functional road class coverage with stencil-masked transitions and configurable opacity fade.
- Add animated cross-fade transitions for boolean style config options (e.g. switching HD roads on/off).
- Add an option to disallow expensive network requests in
loadStylePack.
Bug fixes 🐞
- Fix a
ConcurrentModificationException crash that could occur when a plugin was added or removed during MapView.onDestroy.
- Fix frame pacing breaking when the panel switches refresh-rate modes mid-session (VRR or per-UID
frameRateOverride). FpsManager now updates its screenRefreshRate via a DisplayManager.DisplayListener instead of only sampling once at onStart.
- [maps-sdk] Fix Vulkan rendering being permanently disabled when the Android surface arrived before the native map was set. The renderer now defers setup and retries via
onMapSet() once the map is available.
- Fix a crash that could occur while iterating map interactions when a callback modifies interaction state.
- Fix a use-after-free crash in the map caused by asynchronous tasks accessing a partially destroyed map instance.
- Fix a crash caused by dereferencing a null index buffer when drawing symbols.
- Fix a crash when an overriding terrain source was merged with another source from the same root style.
- Fix missing letters in the middle of text labels placed along lines elevated by terrain.
- Fix aliasing artifacts on lines with borders.
- Fix step expression evaluation when using uniform buffer objects.
- Improve symbol appearances performance for Vulkan backend.
- Fix rare process crashes during HTTP downloads (failure to create a temporary file, and an uncaught error while writing the response).
- Fix a crash sometimes occurring when using a custom raster source.
- Internal fixes and performance improvements.
Dependencies
11.25.0-rc.2 June 04, 2026
Bug fixes 🐞
- Internal fixes and performance improvements.
Dependencies
11.25.0-rc.1 June 02, 2026
Breaking changes ⚠️
MapView.setMaximumFps and MapSurface.setMaximumFps are now annotated @MainThread. Callers must invoke them from the main thread; off-main callers will see a lint warning.
Features ✨ and improvements 🏁
- [compose] Add Standard
IndoorLabels featureset and indoor configuration options (showIndoor, showIndoorLabels, colorIndoorLabelHighlight, colorIndoorLabelSelect) for the Mapbox Standard style.
- Add
useNativeFlingDeceleration option to GesturesPlugin that uses OverScroller for physics-based fling deceleration instead of the legacy easeTo animation, providing a more natural fling experience.
- Throttle
MapboxMap post destroyed warning logs.
- Expose
verticalFov in CameraOptions, allowing a custom vertical field of view to be set in setCamera, easeTo, and flyTo.
- Allow using color string literals in
interpolate expressions, including when set on style config at runtime.
- Support using
line-progress in line-emissive-strength.
- Add support for zoom-and-feature-dependent appearance conditions.
- Add client-side SD/HD road and traffic conflation, hiding redundant roads based on functional road class coverage with stencil-masked transitions and configurable opacity fade.
- Add animated cross-fade transitions for boolean style config options (e.g. switching HD roads on/off).
- Add an option to disallow expensive network requests in
loadStylePack.