Skip to content

Releases: mapbox/mapbox-maps-android

v11.24.1

20 May 11:49

Choose a tag to compare

11.24.1 May 19, 2026

Features ✨ and improvements 🏁

  • Expose FeaturesetFeature.originalFeature property.
  • Add Vulkan rendering backend support (Public Preview). The Vulkan backend is published as a separate artifact (android-core-vulkan / android-core-vulkan-ndk27) that replaces the default OpenGL-based android-core. To use it, replace the default core dependency with the Vulkan variant. In your build.gradle.kts add:
    configurations.all {
        resolutionStrategy.dependencySubstitution {
            all {
                val requested = requested as? ModuleComponentSelector
                if (requested?.group == "com.mapbox.maps" &&
                    (requested.module == "android-core" || requested.module == "android-core-ndk27")
                ) {
                    val vulkanModule = requested.module.replace("android-core", "android-core-vulkan")
                    useTarget("com.mapbox.maps:$vulkanModule:${requested.version}")
                }
            }
        }
    }
    Known limitations:
    • Android 12 (API 31) or later is recommended. Earlier Android versions may exhibit GPU driver bugs, particularly on devices with Adreno GPUs.
    • Only arm64-v8a is supported.
    • No automatic fallback to OpenGL.
    • MapWidget (Android Auto) is not yet supported.
    • Custom layer API is not yet supported.
    • MapView.snapshot() is not yet supported.
    • Rain precipitation effect is not rendered (snow works).
  • Add support for rendering landmark models with level-of-detail (LOD), improving performance and memory use for distant 3D landmarks.
  • Improve additive blend mode rendering on line layers with high data density, and add the line-blend-additive-clamp style property for opting out of dynamic density mapping with a fixed value.
  • Set a default ambient cache quota of 1 GB and over-evict when the quota is exceeded to reduce eviction churn.
  • TileStore.create(path) is no longer supported (deprecated since v11.19). Only one TileStore instance per process is now supported.

Bug fixes 🐞

  • Fix a crash that could occur when the map is destroyed while asynchronous operations are still in progress.
  • Fix the NetworkRestriction.DISALLOW_EXPENSIVE network option not being respected, which could cause map requests to proceed over metered connections when configured otherwise.
  • Fix isMetricUnits/distanceUnits sync in ScaleBar settings DSL generated by KSP codegen.
  • Fix style import config property updates being lost when applied while a concurrent import URL change was loading.
  • Fix incorrect color output when applying a color LUT to premultiplied colors.
  • Fix incorrect symbol elevation rendering on Mali GPUs (e.g. Google Pixel 9 Pro XL) caused by insufficient shader precision for large z-offset values.
  • Fix a crash in the vector tile layer cache when a sibling tile was destroyed during cache reuse.
  • Internal fixes and performance improvements.

Dependencies

v11.21.5

18 May 13:33

Choose a tag to compare

11.21.5 May 15, 2026

Features and improvements

  • Add animated transitions when toggling HD roads.

Bug fixes

  • Fix a situation where updated import config properties were ignored after an import URL change.

Dependencies

v11.23.1

13 May 12:29

Choose a tag to compare

Bug fixes

  • Fix the disallow_expensive HTTP setting not being respected on Android; the SDK now binds requests to a non-metered network (e.g., Wi-Fi) when this flag is set, with Cronet on API 23+ and an OkHttp fallback on older API levels.
  • Fix a memory leak where HttpClient instances could not be garbage collected because callbacks held strong references back to the client.
  • Internal fixes and performance improvements.

Dependencies

v11.22.3

07 May 15:04

Choose a tag to compare

11.22.3 May 07, 2026

Features ✨ and improvements 🏁

  • Internal fixes and performance improvements.

Dependencies

v11.24.0-rc.1

07 May 07:46

Choose a tag to compare

v11.24.0-rc.1 Pre-release
Pre-release

11.24.0-rc.1 May 05, 2026

Features ✨ and improvements 🏁

  • Expose FeaturesetFeature.originalFeature property.
  • Add Vulkan rendering backend support (Public Preview). The Vulkan backend is published as a separate artifact (android-core-vulkan / android-core-vulkan-ndk27) that replaces the default OpenGL-based android-core. To use it, replace the default core dependency with the Vulkan variant. In your build.gradle.kts add:
    configurations.all {
        resolutionStrategy.dependencySubstitution {
            all {
                val requested = requested as? ModuleComponentSelector
                if (requested?.group == "com.mapbox.maps" &&
                    (requested.module == "android-core" || requested.module == "android-core-ndk27")
                ) {
                    val vulkanModule = requested.module.replace("android-core", "android-core-vulkan")
                    useTarget("com.mapbox.maps:$vulkanModule:${requested.version}")
                }
            }
        }
    }
    Known limitations:
    • Android 12 (API 31) or later is recommended. Earlier Android versions may exhibit GPU driver bugs, particularly on devices with Adreno GPUs.
    • Only arm64-v8a is supported.
    • No automatic fallback to OpenGL.
    • MapWidget (Android Auto) is not yet supported.
    • Custom layer API is not yet supported.
    • MapView.snapshot() is not yet supported.
    • Rain precipitation effect is not rendered (snow works).
  • Add support for rendering landmark models with level-of-detail (LOD), improving performance and memory use for distant 3D landmarks.
  • Improve additive blend mode rendering on line layers with high data density, and add the line-blend-additive-clamp style property for opting out of dynamic density mapping with a fixed value.
  • Set a default ambient cache quota of 1 GB and over-evict when the quota is exceeded to reduce eviction churn.
  • TileStore.create(path) is no longer supported (deprecated since v11.19). Only one TileStore instance per process is now supported.

Bug fixes 🐞

  • Fix isMetricUnits/distanceUnits sync in ScaleBar settings DSL generated by KSP codegen.
  • Fix style import config property updates being lost when applied while a concurrent import URL change was loading.
  • Fix incorrect color output when applying a color LUT to premultiplied colors.
  • Fix incorrect symbol elevation rendering on Mali GPUs (e.g. Google Pixel 9 Pro XL) caused by insufficient shader precision for large z-offset values.
  • Fix a crash in the vector tile layer cache when a sibling tile was destroyed during cache reuse.
  • Internal fixes and performance improvements.

Dependencies

v11.21.4

06 May 12:55

Choose a tag to compare

11.21.4 May 05, 2026

Features ✨ and improvements 🏁

  • Internal fixes and performance improvements.

Dependencies

v11.23.0

30 Apr 12:23

Choose a tag to compare

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

v11.22.1

28 Apr 14:43

Choose a tag to compare

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

v11.21.3

24 Apr 12:44

Choose a tag to compare

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

v11.23.0-rc.1

21 Apr 16:36

Choose a tag to compare

v11.23.0-rc.1 Pre-release
Pre-release

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