Releases: mapbox/mapbox-maps-android
Releases · mapbox/mapbox-maps-android
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.jsonandnon_persistent_settings.jsonfrom 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-sizeis 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, common to v24.23.0-rc.1.
v11.22.0
Features ✨ and improvements 🏁
- Expose
heightandminHeightproperties onStandardBuildingsFeature. - Deprecate
PointAnnotation.iconImagegetter. 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 viaPointAnnotationOptions.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
AnnotationManagerwhere bitmap style images were not removed when annotations were deleted. - Fix feature ID format mismatch in JNI marshaling where whole-number
doublefeature IDs (e.g.12345.0) were incorrectly serialized as"12345.000000"instead of"12345", causingsetFeatureStateto fail when using IDs obtained fromqueryRenderedFeatures. - [compose] Fix
MapboxMapcrash (place is called on a deactivated node) when used inside aLazyColumn.- [compose] Known limitation: on Compose Foundation 1.7+ a secondary crash (
Apply is called on deactivated node) may still occur whenMapboxMapis used inside aLazyColumnduring fast scrolling/item reuse because ofLazyColumnprefetch behavior. Workaround: pass a no-opLazyListPrefetchStrategytorememberLazyListState(); seeLazyColumnMapActivityfor an example.
- [compose] Known limitation: on Compose Foundation 1.7+ a secondary crash (
- 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-fitdisappearing in some situations. - Fix dashed lines not rendering correctly when
line-dasharrayvalues are smaller than 1.
Dependencies
v11.21.2
v11.20.3
v11.21.1
Features ✨ and improvements 🏁
- Deprecate
PointAnnotation.iconImagegetter. 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 viaPointAnnotationOptions.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
AnnotationManagerwhere 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
v11.19.6
v11.22.0-rc.1
Features ✨ and improvements 🏁
- Expose
heightandminHeightproperties onStandardBuildingsFeature. - Deprecate
PointAnnotation.iconImagegetter. 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 viaPointAnnotationOptions.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
AnnotationManagerwhere bitmap style images were not removed when annotations were deleted. - Fix feature ID format mismatch in JNI marshaling where whole-number
doublefeature IDs (e.g.12345.0) were incorrectly serialized as"12345.000000"instead of"12345", causingsetFeatureStateto fail when using IDs obtained fromqueryRenderedFeatures. - [compose] Fix
MapboxMapcrash (place is called on a deactivated node) when used inside aLazyColumn.- [compose] Known limitation: on Compose Foundation 1.7+ a secondary crash (
Apply is called on deactivated node) may still occur whenMapboxMapis used inside aLazyColumnduring fast scrolling/item reuse because ofLazyColumnprefetch behavior. Workaround: pass a no-opLazyListPrefetchStrategytorememberLazyListState(); seeLazyColumnMapActivityfor an example.
- [compose] Known limitation: on Compose Foundation 1.7+ a secondary crash (
- 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, common to v24.22.0-rc.1.
v11.19.5
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
AnnotationManagerwhere 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.