Skip to content

[all OSs] Android NDK 22 will be replaced in favor of 24, version 23 will be set as the default one on June, 6 #5595

@miketimofeev

Description

@miketimofeev

Breaking changes

There are two changes:

  • Ndk 22 will be replaced by Ndk 24
  • Ndk 23 will be the new default (ndk-bundle) instead of Ndk 21

Target date

The propagation is starting on June, 6 and will take 3-4 days

The motivation for the changes

According to our Software and image guidelines we support 1 latest non-LTS and 2 latest LTS versions of NDK. Currently, our image contains NDK r22 whereas the latest non-LTS is 24. LTS version of NDK 21 is not supported so we would like to set version 23 as the new default.

Possible impact

  • If your project depends on NDK r22 it can be broken
  • If your project relies on ndk-bundle based on r21 it can be broken

Virtual environments affected

  • Ubuntu 18.04
  • Ubuntu 20.04
  • Ubuntu 22.04
  • macOS 10.15
  • macOS 11
  • macOS 12
  • Windows Server 2019
  • Windows Server 2022

Mitigation ways

  • To install NDK r22 in runtime use the following snippets;
    • Windows
    $sdkRoot = "C:\Android\android-sdk"
    $sdkManager = "$sdkRoot\cmdline-tools\latest\bin\sdkmanager.bat"
    Install-AndroidSDKPackages -AndroidSDKManagerPath $sdkManager `
                               -AndroidSDKRootPath $sdkRoot `
                               -AndroidPackages "ndk;21.4.7075529"
    • macOS
     ANDROID_HOME=$HOME/Library/Android/sdk
     SDKMANAGER=$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager
     echo y | $SDKMANAGER "ndk;21.4.7075529"
    • Ubuntu
    ANDROID_ROOT=/usr/local/lib/android
    ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk
    SDKMANAGER=${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager
    echo "y" | $SDKMANAGER "ndk;21.4.7075529"
  • To change default NDK version (ndk-bundle) use the following snippets:
    • Windows
      $sdkRoot = "C:\Android\android-sdk"
      $sdkManager = "$sdkRoot\cmdline-tools\latest\bin\sdkmanager.bat"
      $ndkRoot = "$sdkRoot\ndk-bundle"
      New-Item -Path $ndkRoot -ItemType SymbolicLink -Value "$sdkRoot\ndk\21.4.7075529" -Force
    • macOS
      ANDROID_HOME=$HOME/Library/Android/sdk
       ln -sfn $ANDROID_HOME/ndk/21.4.7075529 $ANDROID_HOME/ndk-bundle
    • Ubuntu
     ANDROID_ROOT=/usr/local/lib/android
     ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk
     ANDROID_NDK_ROOT=${ANDROID_SDK_ROOT}/ndk-bundle
     ln -sfn $ANDROID_SDK_ROOT/ndk/21.4.7075529 $ANDROID_NDK_ROOT

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions