---
name: Mapbox Maps Android
slug: mapbox-maps-android
type: github
source_url: https://github.com/mapbox/mapbox-maps-android
organization: Mapbox
organization_slug: mapbox
total_releases: 100
latest_version: v11.23.0
latest_date: 2026-04-30
last_updated: 2026-05-01
tracking_since: 2024-11-19
canonical: https://releases.sh/mapbox/mapbox-maps-android
organization_url: https://releases.sh/mapbox
---

<Release version="v11.23.0" date="April 30, 2026" published="2026-04-30T12:23:48.000Z" url="https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.23.0">
# 11.23.0 April 29, 2026
## Features ✨ and improvements 🏁
* Support symbol paint properties in appearances — symbol layers can now use feature-dependent appearances for paint properties (not only layout), enabling richer per-feature styling of text and icons.
* Improve rendering performance of feature cutouts — optimized depth sampling in the cutout shader yields noticeably smoother rendering when feature cutouts are enabled (e.g. elevated route with cutouts).
* TileStore can now store 3D landmark/navigation tile content types, unblocking their use in offline regions.
* Add support for USB import radius in TileStore — new import parameter for seeding offline tile packs from USB media within a configurable radius.
* Evict tiles based on LRU and optimize eviction — the default eviction policy now uses least-recently-used instead of expiration-based scoring, keeping frequently-viewed tiles around longer and making cleanup passes faster.
* Settings can be set on startup — the SDK now loads `persistent_settings.json` and `non_persistent_settings.json` from the app's internal storage directory at startup, allowing configuration changes without an app rebuild.


## Bug fixes 🐞
* Fix attribution links accepting non-HTTP URI schemes.
* Fix a potential file descriptor leak that could cause resource exhaustion.
* Fix icons appearing at incorrect size when `icon-size` is data-driven and a non-default scale factor is applied.
* Fix fog incorrectly obscuring the globe when using a custom field of view.
* Fix tile data corruption causing integrity check failures for small tiles stored in the offline cache.
* Fix a crash that could occur when the tile store is destroyed while downloads are still being processed.
* Fix 3D models occasionally not rendering on first load on some devices, caused by background shader compilation not signaling the renderer when compilation completed.
* Fix a crash in `ConfigExpression`  where dereferencing an empty optional caused undefined behaviour.
* [compose] Fixed Composition leak in ViewAnnotation when annotations are removed from the map.
* [gestures] Fixed interaction leak in `setGesturesManager` causing native map interactions to accumulate.
* [gestures] Added post-cleanup guard to prevent re-registering interactions or listeners after plugin cleanup.

## Dependencies
* Update gl-native to [v11.23.0](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.23.0), common to [v24.23.0](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.23.0).


</Release>

<Release version="v11.22.1" date="April 28, 2026" published="2026-04-28T14:43:04.000Z" url="https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.22.1">
# 11.22.1 April 28, 2026

## Bug fixes 🐞
* [gestures] Fixed interaction leak in `setGesturesManager` causing native map interactions to accumulate.
* [gestures] Added post-cleanup guard to prevent re-registering interactions or listeners after plugin cleanup.

## Dependencies
* Update gl-native to [v11.22.1](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.22.1), common to [v24.22.1](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.22.1).

</Release>

<Release version="v11.21.3" date="April 24, 2026" published="2026-04-24T12:44:16.000Z" url="https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.21.3">
# 11.21.3 April 23, 2026
## Bug fixes 🐞
* Fix above-ground route line not rendering over tunnel geometry when cutout is active.
* Fix rendering artifacts on feature cutout geometries caused by incorrect shader clipping.
* Fix a potential crash in style configuration expression evaluation when a config value is unset.

## Dependencies
* Update gl-native to [v11.21.3](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.21.3), common to [v24.21.3](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.21.3).
</Release>

<Release version="v11.23.0-rc.1" date="April 21, 2026" published="2026-04-21T16:36:42.000Z" url="https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.23.0-rc.1">
# 11.23.0-rc.1 April 20, 2026
## Features ✨ and improvements 🏁
* Support symbol paint properties in appearances — symbol layers can now use feature-dependent appearances for paint properties (not only layout), enabling richer per-feature styling of text and icons.
* Improve rendering performance of feature cutouts — optimized depth sampling in the cutout shader yields noticeably smoother rendering when feature cutouts are enabled (e.g. elevated route with cutouts).
* TileStore can now store 3D landmark/navigation tile content types, unblocking their use in offline regions.
* Add support for USB import radius in TileStore — new import parameter for seeding offline tile packs from USB media within a configurable radius.
* Evict tiles based on LRU and optimize eviction — the default eviction policy now uses least-recently-used instead of expiration-based scoring, keeping frequently-viewed tiles around longer and making cleanup passes faster.
* Settings can be set on startup — the SDK now loads `persistent_settings.json` and `non_persistent_settings.json` from the app's internal storage directory at startup, allowing configuration changes without an app rebuild.

## Bug fixes 🐞
* Fix attribution links accepting non-HTTP URI schemes.
* Fix a potential file descriptor leak that could cause resource exhaustion.
* Fix icons appearing at incorrect size when `icon-size` is data-driven and a non-default scale factor is applied.
* Fix fog incorrectly obscuring the globe when using a custom field of view.
* Fix tile data corruption causing integrity check failures for small tiles stored in the offline cache.
* Fix a crash that could occur when the tile store is destroyed while downloads are still being processed.

## Dependencies
* Update gl-native to [v11.23.0-rc.1](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.23.0-rc.1), common to [v24.23.0-rc.1](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.23.0-rc.1).

</Release>

<Release version="v11.21.2" date="April 16, 2026" published="2026-04-16T22:49:38.000Z" url="https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.21.2">
## Features ✨ and improvements 🏁
*  Improve rendering performance of feature cutouts

## Bug fixes 🐞
* Fix tile cover issues for tunnels

## Dependencies
* Update gl-native to [v11.21.2](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.21.2), common to [v24.21.2](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.21.2).
</Release>

<Release version="v11.22.0" date="April 16, 2026" published="2026-04-16T14:05:18.000Z" url="https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.22.0">
## Features ✨ and improvements 🏁
* Expose `height` and `minHeight` properties on `StandardBuildingsFeature`.
* Deprecate `PointAnnotation.iconImage` getter. Reading this property exposes an internally generated image ID managed by the annotation manager. If you need a stable, reusable image ID, register the image in the style yourself via the Style API and pass the ID explicitly via `PointAnnotationOptions.withIconImage(String)`. In that case you are responsible for the image's lifecycle and must remove it from the style when no longer needed.
* Internal fixes and performance improvements.

## Bug fixes 🐞
* Fix native memory leak in `AnnotationManager` where bitmap style images were not removed when annotations were deleted.
* Fix feature ID format mismatch in JNI marshaling where whole-number `double` feature IDs (e.g. `12345.0`) were incorrectly serialized as `"12345.000000"` instead of `"12345"`, causing `setFeatureState` to fail when using IDs obtained from `queryRenderedFeatures`.
* [compose] Fix `MapboxMap` crash (`place is called on a deactivated node`) when used inside a `LazyColumn`.
    * [compose] **Known limitation:** on Compose Foundation 1.7+ a secondary crash (`Apply is called on deactivated node`) may still occur when `MapboxMap` is used inside a `LazyColumn` during fast scrolling/item reuse because of `LazyColumn` prefetch behavior. Workaround: pass a no-op `LazyListPrefetchStrategy` to `rememberLazyListState()`; see `LazyColumnMapActivity` for an example.
* Fix location indicator cutout appearing in the wrong position on devices with high pixel density.
* Fix lines with sub-pixel width being rendered thicker than intended.
* Fix tile data decompression by properly tracking compression state in tile storage.
* Fix potential ANR caused by a deadlock in lifecycle management.
* Fix tile store cleanup task incorrectly deleting in-progress downloads.
* Fix tiles failing to load on some Android devices when the server response is incomplete.
* Fix tunnel roads being clipped or missing near the top of the screen at high pitch angles when crossing tile boundaries.
* Fix stretchable icons used with `icon-text-fit` disappearing in some situations.
* Fix dashed lines not rendering correctly when `line-dasharray` values are smaller than 1.

## Dependencies
* Update gl-native to [v11.22.0](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.22.0), common to [v24.22.0](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.22.0).
</Release>

<Release version="v11.20.3" date="April 15, 2026" published="2026-04-15T13:05:21.000Z" url="https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.20.3">
## Bug fixes 🐞
* Fix tile data decompression by properly tracking compression state in tile storage.

## Dependencies
* Update gl-native to [v11.20.3](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.20.3), common to [v24.20.3](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.20.3).
</Release>

<Release version="v11.21.1" date="April 13, 2026" published="2026-04-13T07:21:19.000Z" url="https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.21.1">
## Features ✨ and improvements 🏁
* Deprecate `PointAnnotation.iconImage` getter. Reading this property exposes an internally generated image ID managed by the annotation manager. If you need a stable, reusable image ID, register the image in the style yourself via the Style API and pass the ID explicitly via `PointAnnotationOptions.withIconImage(String)`. In that case you are responsible for the image's lifecycle and must remove it from the style when no longer needed.

## Bug fixes 🐞
* Fix native memory leak in `AnnotationManager` where bitmap style images were not removed when annotations were deleted.
* Fix an issue where overscaled tiles from offline tile packs could delay fetching higher-resolution network tiles.

## Dependencies
* Update gl-native to [v11.21.1](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.21.1), common to [v24.21.1](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.21.1).
</Release>

<Release version="v11.19.6" date="April 13, 2026" published="2026-04-13T06:46:13.000Z" url="https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.19.6">
## Bug fixes 🐞
* Internal fixes and performance improvements.

## Dependencies
* Update gl-native to [v11.19.6](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.19.6), common to [v24.19.6](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.19.6).
</Release>

<Release version="v11.22.0-rc.1" date="April 9, 2026" published="2026-04-09T08:35:13.000Z" url="https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.22.0-rc.1">
## Features ✨ and improvements 🏁
* Expose `height` and `minHeight` properties on `StandardBuildingsFeature`.
* Deprecate `PointAnnotation.iconImage` getter. Reading this property exposes an internally generated image ID managed by the annotation manager. If you need a stable, reusable image ID, register the image in the style yourself via the Style API and pass the ID explicitly via `PointAnnotationOptions.withIconImage(String)`. In that case you are responsible for the image's lifecycle and must remove it from the style when no longer needed.
* Internal fixes and performance improvements.

## Bug fixes 🐞
* Fix native memory leak in `AnnotationManager` where bitmap style images were not removed when annotations were deleted.
* Fix feature ID format mismatch in JNI marshaling where whole-number `double` feature IDs (e.g. `12345.0`) were incorrectly serialized as `"12345.000000"` instead of `"12345"`, causing `setFeatureState` to fail when using IDs obtained from `queryRenderedFeatures`.
* [compose] Fix `MapboxMap` crash (`place is called on a deactivated node`) when used inside a `LazyColumn`.
  * [compose] **Known limitation:** on Compose Foundation 1.7+ a secondary crash (`Apply is called on deactivated node`) may still occur when `MapboxMap` is used inside a `LazyColumn` during fast scrolling/item reuse because of `LazyColumn` prefetch behavior. Workaround: pass a no-op `LazyListPrefetchStrategy` to `rememberLazyListState()`; see `LazyColumnMapActivity` for an example.
* Fix location indicator cutout appearing in the wrong position on devices with high pixel density.
* Fix lines with sub-pixel width being rendered thicker than intended.
* Fix tile data decompression by properly tracking compression state in tile storage.
* Fix potential ANR caused by a deadlock in lifecycle management.
* Fix tile store cleanup task incorrectly deleting in-progress downloads.
* Fix tiles failing to load on some Android devices when the server response is incomplete.

## Dependencies
* Update gl-native to [v11.22.0-rc.1](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.22.0-rc.1), common to [v24.22.0-rc.1](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.22.0-rc.1).
</Release>

<Release version="v11.19.5" date="April 7, 2026" published="2026-04-07T05:21:13.000Z" url="https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.19.5">
## Bug fixes 🐞
* Internal fixes and performance improvements.

## Dependencies
* Update gl-native to v11.19.5, common to v24.19.5.
</Release>

<Release version="v11.19.4" date="April 2, 2026" published="2026-04-02T14:53:55.000Z" url="https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.19.4">
## Bug fixes 🐞
* Fix overscaled offline tilepack tiles being showed after switching to online mode

## Dependencies
* Update gl-native to v11.19.4, common to v24.19.4.
</Release>

<Release version="v11.21.0" date="April 2, 2026" published="2026-04-02T12:34:31.000Z" url="https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.21.0">
## Bug fixes 🐞
* Fix tile store eviction failing to clean up files for decompressed tiles, causing gradual storage growth.
* Fix gaps in elevated route line rendering at ramp transitions and tile borders.
* Fix indicator cutout (location puck area) appearing in the wrong position on high-DPI displays.
* Fix incorrect shadow culling on fill-extrusion layers.
* Fix ambient occlusion not being clipped when fill-extrusion layers are clipped by clip layers.
* Fix clip layer updates not always refreshing clipped layers and shadows.
* Fix native memory leak in `AnnotationManager` where bitmap style images were not removed onDestroy.
* Fix feature cutout rendering artifacts on some devices caused by insufficient shader precision.
* Fix rendering of stacked underground 3D roads.
* Fix a crash that could occur when the map is destroyed during style loading.
* Fix underground road geometry being clipped in orthographic projection with small viewports.
* Fix map flickering caused by stencil buffer conflicts between raster and hillshade layers.
* Fix potential ANRs when receiving location updates under heavy system load.
* Internal fixes and performance improvements.

## Dependencies
* Update gl-native to v11.21.0, common to v24.21.0.
</Release>

<Release version="v11.19.3" date="April 1, 2026" published="2026-04-01T10:10:32.000Z" url="https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.19.3">
## Bug fixes 🐞
* Internal fixes and performance improvements.

## Dependencies
* Update gl-native to v11.19.3, common to v24.19.3.
</Release>

<Release version="v11.20.2" date="March 26, 2026" published="2026-03-26T08:07:33.000Z" url="https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.20.2">
## Bug fixes 🐞
* Fix a bug in eviction logic for TileStore.

## Dependencies
* Update gl-native to v11.20.2, common to v24.20.2.
</Release>

<Release version="v11.19.2" date="March 26, 2026" published="2026-03-26T08:07:20.000Z" url="https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.19.2">
## Bug fixes 🐞
* Fix a bug in eviction logic for TileStore.

## Dependencies
* Update gl-native to v11.19.2, common to v24.19.2.
</Release>

<Release version="v11.18.3" date="March 26, 2026" published="2026-03-26T08:07:00.000Z" url="https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.18.3">
## Bug fixes 🐞
* Fix a bug in eviction logic for TileStore.

## Dependencies
* Update gl-native to v11.18.3, common to v24.18.3.
</Release>

<Release version="v11.21.0-rc.1" date="March 25, 2026" published="2026-03-25T11:27:49.000Z" url="https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.21.0-rc.1">
## Bug fixes 🐞
* Fix intermittent rendering artifacts (reversed/large bitmaps) on Android Auto caused by stale texture ID reuse in `BitmapWidgetRenderer` after surface recreation.
* Fix native memory leak in `AnnotationManager` where bitmap style images were not removed onDestroy.
* Fix feature cutout rendering artifacts on some devices caused by insufficient shader precision.
* Fix rendering of stacked underground 3D roads.
* Fix a crash that could occur when the map is destroyed during style loading.
* Fix underground road geometry being clipped in orthographic projection with small viewports.
* Fix map flickering caused by stencil buffer conflicts between raster and hillshade layers.
* Fix potential ANRs when receiving location updates under heavy system load.
* Fix a bug in eviction logic for TileStore.
* Internal fixes and performance improvements.

## Dependencies
* Update gl-native to v11.21.0-rc.1, common to v24.21.0-rc.1.

</Release>

<Release version="v11.20.1" date="March 18, 2026" published="2026-03-18T15:43:04.000Z" url="https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.20.1">
>[!IMPORTANT]
>A bug in the SDK's offline data management causes untracked data to accumulate instead of being removed under specific conditions. This leads to uncontrolled storage growth, potentially degrading system performance or causing complete unusability if disk space is exhausted.
>The required version for upgrade is 11.20.2 or any version from 11.21.0 onward.
>**This specific bug is only relevant to users who use tilestore offline regions.**

## Bug fixes 🐞
* Internal fixes and performance improvements.

## Dependencies
* Update gl-native to [v11.20.1](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.20.1), common to [v24.20.1](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.20.1).
</Release>

<Release version="v11.20.0" date="March 16, 2026" published="2026-03-16T00:34:57.000Z" url="https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.20.0">
>[!IMPORTANT]
>A bug in the SDK's offline data management causes untracked data to accumulate instead of being removed under specific conditions. This leads to uncontrolled storage growth, potentially degrading system performance or causing complete unusability if disk space is exhausted.
>The required version for upgrade is 11.20.2 or any version from 11.21.0 onward.
>**This specific bug is only relevant to users who use tilestore offline regions.**

## Features ✨ and improvements 🏁
* [compose] Add declarative animation API to experimental `Marker` composable with two animation triggers: `appearAnimation` and `disappearAnimation`. Each trigger accepts a list of `MarkerAnimationEffect` including `wiggle` (pendulum rotation), `scale`, `fadeIn`, and `fadeOut`. Effects can be customized with parameters (e.g., `scale(from = 0.5f, to = 1.5f)`, `fade(from = 0.5f, to = 1.0f)`) and combined for rich animations. See `MarkersActivity` example for usage.
* Improve FPS statistics logging when `mapView.setOnFpsChangedListener()` is used with separate tracking for frame pacing skips and missed render frames for better performance debugging.

## Bug fixes 🐞
* Fix `MapSurface.setMaximumFps` not working correctly on secondary displays (e.g. Android Auto). Use `Context.getDisplay()` on API 30+ to get the actual display refresh rate instead of always using the primary display's rate.
* Fix `PointAnnotationManager.iconImageBitmap` setter not registering the bitmap image with the style, causing group-level bitmap icons to be invisible.
* Fix feature cutout artifacts at route overlaps.
* Fix a data race condition for `FillExtrusion` layer.
* Fix several issues related to runtime symbol appearances switches.
* Fix disappearing icons after reducing memory use.
* Fix landmark POI image loads causes relayout for unrelated layers.
* Fix tilestore eviction logic to not block tilestore thread completely.
* Fix out-of-bounds issue for elevated line caused by an incorrect clipping result.

## Dependencies
* Update gl-native to [v11.20.0](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.20.0), common to [v24.20.0](https://github.com/mapbox/mapbox-maps-android/releases/tag/v11.20.0).

</Release>

<Pagination page="1" total-pages="5" total-items="100" next="https://releases.sh/mapbox/mapbox-maps-android.md?page=2" />
