Configure the NDK for the Android Gradle plugin

This page shows you how to configure the NDK in your project according to the version of the Android Gradle Plugin (AGP) used by the project.

The steps vary according to the version of AGP used in the project. Find the Android Gradle Plugin version in either of the following locations:

  • File > Project Structure > Project menu in Android Studio
  • The top-level build.gradle file in the project

Select the version below:

AGP version 4.1+

You have the following options to configure the NDK:

  • (Recommended) Use the ndkVersion property to set the NDK version.
  • Do not set any property. Android Studio will automatically download the default version of the NDK for that specific AGP version (in this case, NDK version 21.0.6113669) or you can install the NDK from the command line. Android Studio installs all versions of the NDK in the android-sdk/ndk/ directory. Each version is located in a subdirectory with the version number as its name.
  • For special use cases, use the ndkPath property:

    Groovy

    android {
      ndkPath "/Users/ndkPath/ndk21"  // Point to your own NDK
    }

    Kotlin

    android {
      ndkPath = "/Users/ndkPath/ndk21"  // Point to your own NDK
    }

Install the NDK from the command line

To install the NDK from the command line, do the following:

  1. Use the sdkmanager tool to view versions of CMake and NDK packages that are available. Similar to other SDK components, the NDK is released through different channels:

    sdkmanager --list [--channel=channel_id]  // NDK channels: 0 (stable),
                                                // 1 (beta), or 3 (canary)
    
  2. Pass the sdkmanager the strings for the packages that you want to install. For example, to install CMake or the NDK, use the following syntax:

    sdkmanager --install
              ["ndk;major.minor.build[suffix]" | "cmake;major.minor.micro.build"]
              [--channel=channel_id]
    

    Use the --channel option to only install a package if it has been released in a channel up to and including channel_id.

For more information, see sdkmanager.