Ndk

Added in 4.2.0

interface Ndk


DSL object for per-variant NDK settings, such as the ABI filter.

Summary

Public properties

MutableSet<String>

Specifies the Application Binary Interfaces (ABI) that Gradle should build outputs for and package with your APK.

String?

This property is deprecated. Specify C/C++ flags in CMakeLists.txt or Application.mk

String?

The type of debug metadata which will be packaged in the app bundle.

Int?

This property is deprecated. Use Cmake or NdkBuild DSL instead

MutableList<String>?

This property is deprecated. Specify LD libs in CMakeLists.txt or Application.mk

String?

This property is deprecated. Specify module name in CMakeLists.txt or Application.mk

String?

This property is deprecated. Specify stl name in CMakeLists.txt or Application.mk

Public properties

abiFilters

Added in 4.2.0
val abiFiltersMutableSet<String>

Specifies the Application Binary Interfaces (ABI) that Gradle should build outputs for and package with your APK.

You can list any subset of the ABIs the NDK supports, as shown below:

android {
// Similar to other properties in the defaultConfig block, you can override
// these properties for each product flavor in your build configuration.
defaultConfig {
ndk {
// Tells Gradle to build outputs for the following ABIs and package
// them into your APK.
abiFilters 'x86', 'x86_64', 'armeabi'
}
}
}

When this flag is not configured, Gradle builds and packages all available ABIs.

To reduce the size of your APK, consider configuring multiple APKs based on ABI—instead of creating one large APK with all versions of your native libraries, Gradle creates a separate APK for each ABI you want to support and only packages the files each ABI needs.

cFlags

Added in 4.2.0
Deprecated in 8.8.0-beta01
var cFlagsString?

The C Flags

debugSymbolLevel

Added in 4.2.0
var debugSymbolLevelString?

The type of debug metadata which will be packaged in the app bundle.

Supported values are 'none' (default, no native debug metadata will be packaged), 'symbol_table' (only the symbol tables will be packaged), and 'full' (the debug info and symbol tables will be packaged).

Example usage:

android {
    buildTypes {
        release {
            ndk {
                debugSymbolLevel 'symbol_table'
            }
        }
    }
}

jobs

Added in 4.2.0
Deprecated in 8.8.0-beta01
var jobsInt?

Number of parallel threads to spawn.

ldLibs

Added in 4.2.0
Deprecated in 8.8.0-beta01
val ldLibsMutableList<String>?

The LD Libs

moduleName

Added in 4.2.0
Deprecated in 8.8.0-beta01
var moduleNameString?

The module name

stl

Added in 4.2.0
Deprecated in 8.8.0-beta01
var stlString?

The APP_STL value