Skip to content

[all OSs] Android NDK 26 will be removed, Android NDK 27 will be used by default on January 12th, 2026. #13467

@erik-bershel

Description

@erik-bershel

Breaking changes

  • Android NDK 26 will be removed from all supported images.

  • Android NDK 27 will be used by default on all supported images.

  • Our support police for Android will be changed

    from:

    - 1 latest non-LTS, 2 latest LTS versions

    to:

    - 3 NDK versions
    - two of them are latest (whether stable or LTS), i.e. N and N-1
    - third one is the latest LTS version before (and including) N-2 release  

Target date

Image deployment will start on Monday January 12th, 2026 and will take about 3 days.

The motivation for the changes

The change follows a new Android NDK support policy aimed at keeping images up to date while balancing disk space limitations.

Possible impact

Projects that depend on Android NDK 26 will stop working.

Platforms affected

  • Azure DevOps
  • GitHub Actions

Runner images affected

  • Ubuntu 22.04
  • Ubuntu 24.04
  • Ubuntu Slim
  • macOS 14
  • macOS 14 Arm64
  • macOS 15
  • macOS 15 Arm64
  • macOS 26 Arm64
  • Windows Server 2019
  • Windows Server 2022
  • Windows Server 2025

Mitigation ways

If your project requires it, you can install Android NDK 26 at runtime and set the necessary variables, for example for GitHub Actions:

env:
  NDK_VERSION: "26.1.10909125"

jobs:
  build:
    strategy:
      matrix:
        os: [macos-latest, ubuntu-latest, windows-latest]
    runs-on: ${{ matrix.os }}

    steps:
      - uses: actions/checkout@v4

      - name: Configure Android env (macOS/Linux)
        if: runner.os != 'Windows'
        shell: bash
        run: |
          echo "ANDROID_HOME=$ANDROID_SDK_ROOT" >> "$GITHUB_ENV"
          echo "ANDROID_SDK_HOME=$RUNNER_TEMP/android-home" >> "$GITHUB_ENV"
          echo "ANDROID_NDK_HOME=$ANDROID_SDK_ROOT/ndk/${NDK_VERSION}" >> "$GITHUB_ENV"
          echo "$ANDROID_SDK_ROOT/cmdline-tools/latest/bin" >> "$GITHUB_PATH"
      - name: Configure Android env (Windows)
        if: runner.os == 'Windows'
        shell: pwsh
        run: |
          Add-Content $env:GITHUB_ENV "ANDROID_HOME=$env:ANDROID_SDK_ROOT"
          Add-Content $env:GITHUB_ENV "ANDROID_SDK_HOME=$env:RUNNER_TEMP\android-home"
          Add-Content $env:GITHUB_ENV "ANDROID_NDK_HOME=$env:ANDROID_SDK_ROOT\ndk\${{ env.NDK_VERSION }}"
          Add-Content $env:GITHUB_PATH "$env:ANDROID_SDK_ROOT\cmdline-tools\latest\bin"
      - name: Install NDK via preinstalled sdkmanager (macOS/Linux)
        if: runner.os != 'Windows'
        shell: bash
        run: |
          sdkmanager "ndk;${NDK_VERSION}"
          test -d "$ANDROID_SDK_ROOT/ndk/${NDK_VERSION}"
      - name: Install NDK via preinstalled sdkmanager (Windows)
        if: runner.os == 'Windows'
        shell: pwsh
        run: |
          sdkmanager "ndk;$env:NDK_VERSION"
          if (!(Test-Path "$env:ANDROID_SDK_ROOT\ndk\$env:NDK_VERSION")) {
            throw "NDK $env:NDK_VERSION not found"
          }

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions