# SettingsExtension

# SettingsExtension


```
public interface SettingsExtension
```

<br />

*** ** * ** ***

Interface used for the `android` DSL in the `settings.gradle[.kts]` file, after the `com.android.settings` plugin is applied.

This allows settings default values that are then applied to all android projects which this build.

## Summary

|                                                                                                            ### Public methods                                                                                                             |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `abstract void`                                                                                                                                                                                                                           | [compileSdkAddon](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#compileSdkAddon(kotlin.String,kotlin.String,kotlin.Int))`(@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` vendor, @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` name, int version)`                                                                                                                                       |
| `abstract void`                                                                                                                                                                                                                           | [execution](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#execution(kotlin.Function1))`(` ` @`[ExtensionFunctionType](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-extension-function-type/index.html)` @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` Function1<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Execution](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/Execution)`, `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`> action` `)` Set execution profiles and options for tools. |
| `abstract `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)                                                                                                                                   | `@`[Incubating](https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html) [getAddOnName](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#getAddOnName())`()` Value set via `compileSdkAddon`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `abstract `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)                                                                                                                                   | `@`[Incubating](https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html) [getAddOnVendor](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#getAddOnVendor())`()` Value set via `compileSdkAddon`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `abstract `[Integer](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html)                                                                                                                                 | `@`[Incubating](https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html) [getAddOnVersion](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#getAddOnVersion())`()` Value set via `compileSdkAddon`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)                       | [getBuildToolsVersion](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#getBuildToolsVersion())`()` Specifies the version of the [SDK Build Tools](https://developer.android.com/studio/releases/build-tools.html) to use when building your project.                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `abstract `[Integer](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html)                                                                                                                                 | [getCompileSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#getCompileSdk())`()` Specifies the API level to compile your project against.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `abstract `[Integer](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html)                                                                                                                                 | [getCompileSdkExtension](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#getCompileSdkExtension())`()` Specifies the SDK Extension level to compile your project against.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `abstract `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)                                                                                                                                   | [getCompileSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#getCompileSdkPreview())`()` Specify a preview API to compile your project against.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Execution](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/Execution) | [getExecution](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#getExecution())`()` Set execution profiles and options for tools.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `abstract `[Integer](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html)                                                                                                                                 | [getMinSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#getMinSdk())`()` The minimum SDK version.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `abstract `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)                                                                                                                                   | [getMinSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#getMinSdkPreview())`()`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `abstract `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)                                                                                                                                   | [getNdkPath](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#getNdkPath())`()` Requires the specified path to NDK be used.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)                       | [getNdkVersion](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#getNdkVersion())`()` Requires the specified NDK version to be used.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `abstract void`                                                                                                                                                                                                                           | [setBuildToolsVersion](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#setBuildToolsVersion(kotlin.String))`(@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` buildToolsVersion)` Specifies the version of the [SDK Build Tools](https://developer.android.com/studio/releases/build-tools.html) to use when building your project.                                                                                                                                                                                                                       |
| `abstract void`                                                                                                                                                                                                                           | [setCompileSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#setCompileSdk(kotlin.Int))`(`[Integer](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html)` compileSdk)` Specifies the API level to compile your project against.                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `abstract void`                                                                                                                                                                                                                           | [setCompileSdkExtension](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#setCompileSdkExtension(kotlin.Int))`(`[Integer](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html)` compileSdkExtension)` Specifies the SDK Extension level to compile your project against.                                                                                                                                                                                                                                                                                                                                                                                                             |
| `abstract void`                                                                                                                                                                                                                           | [setCompileSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#setCompileSdkPreview(kotlin.String))`(`[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` compileSdkPreview)` Specify a preview API to compile your project against.                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `abstract void`                                                                                                                                                                                                                           | [setMinSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#setMinSdk(kotlin.Int))`(`[Integer](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html)` minSdk)` The minimum SDK version.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `abstract void`                                                                                                                                                                                                                           | [setMinSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#setMinSdkPreview(kotlin.String))`(`[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` minSdkPreview)`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `abstract void`                                                                                                                                                                                                                           | [setNdkPath](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#setNdkPath(kotlin.String))`(`[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` ndkPath)` Requires the specified path to NDK be used.                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `abstract void`                                                                                                                                                                                                                           | [setNdkVersion](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#setNdkVersion(kotlin.String))`(@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` ndkVersion)` Requires the specified NDK version to be used.                                                                                                                                                                                                                                                                                                                                               |

## Public methods

### compileSdkAddon

```
abstract void compileSdkAddon(@NonNull String vendor, @NonNull String name, int version)
```  

### execution

```
abstract void execution(
    @ExtensionFunctionType @NonNull Function1<@NonNull Execution, Unit> action
)
```

Set execution profiles and options for tools.  

### getAddOnName

```
@Incubating
abstract String getAddOnName()
```

Value set via `compileSdkAddon`  

### getAddOnVendor

```
@Incubating
abstract String getAddOnVendor()
```

Value set via `compileSdkAddon`  

### getAddOnVersion

```
@Incubating
abstract Integer getAddOnVersion()
```

Value set via `compileSdkAddon`  

### getBuildToolsVersion

```
abstract @NonNull String getBuildToolsVersion()
```

Specifies the version of the [SDK Build Tools](https://developer.android.com/studio/releases/build-tools.html) to use when building your project.

See [com.android.build.api.dsl.CommonExtension.buildToolsVersion](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/CommonExtension#buildToolsVersion(kotlin.String)) for more information  

### getCompileSdk

```
abstract Integer getCompileSdk()
```

Specifies the API level to compile your project against. The Android plugin requires you to configure this property.

This means your code can use only the Android APIs included in that API level and lower. You can configure the compile sdk version by adding the following to the `android` block: `compileSdk = 26`.

You should generally [use the most up-to-date API level](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) available. If you are planning to also support older API levels, it's good practice to [use the Lint tool](https://developer.android.com/studio/write/lint.html) to check if you are using APIs that are not available in earlier API levels.

The value you assign to this property is parsed and stored in a normalized form, so reading it back may return a slightly different value.  

### getCompileSdkExtension

```
abstract Integer getCompileSdkExtension()
```

Specifies the SDK Extension level to compile your project against. This value is optional.

When not provided the base extension for the given `compileSdk` API level will be selected.  

### getCompileSdkPreview

```
abstract String getCompileSdkPreview()
```

Specify a preview API to compile your project against.

For example, to try out the Android S preview, rather than `compileSdk = 30` you can use `compileSdkPreview = "S"`

Once the preview APIs are finalized, they will be allocated a stable integer value.  

### getExecution

```
abstract @NonNull Execution getExecution()
```

Set execution profiles and options for tools.  

### getMinSdk

```
abstract Integer getMinSdk()
```

The minimum SDK version. Setting this it will override previous calls of [minSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#minSdk()) and [minSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#minSdkPreview()) setters. Only one of [minSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#minSdk()) and [minSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#minSdkPreview()) should be set.

See [uses-sdk element documentation](http://developer.android.com/guide/topics/manifest/uses-sdk-element.html).  

### getMinSdkPreview

```
abstract String getMinSdkPreview()
```  

### getNdkPath

```
abstract String getNdkPath()
```

Requires the specified path to NDK be used.

See [com.android.build.api.dsl.CommonExtension.ndkPath](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/CommonExtension#ndkPath()) for more information  

### getNdkVersion

```
abstract @NonNull String getNdkVersion()
```

Requires the specified NDK version to be used.

See [com.android.build.api.dsl.CommonExtension.ndkVersion](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/CommonExtension#ndkVersion()) for more information  

### setBuildToolsVersion

```
abstract void setBuildToolsVersion(@NonNull String buildToolsVersion)
```

Specifies the version of the [SDK Build Tools](https://developer.android.com/studio/releases/build-tools.html) to use when building your project.

See [com.android.build.api.dsl.CommonExtension.buildToolsVersion](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/CommonExtension#buildToolsVersion(kotlin.String)) for more information  

### setCompileSdk

```
abstract void setCompileSdk(Integer compileSdk)
```

Specifies the API level to compile your project against. The Android plugin requires you to configure this property.

This means your code can use only the Android APIs included in that API level and lower. You can configure the compile sdk version by adding the following to the `android` block: `compileSdk = 26`.

You should generally [use the most up-to-date API level](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels) available. If you are planning to also support older API levels, it's good practice to [use the Lint tool](https://developer.android.com/studio/write/lint.html) to check if you are using APIs that are not available in earlier API levels.

The value you assign to this property is parsed and stored in a normalized form, so reading it back may return a slightly different value.  

### setCompileSdkExtension

```
abstract void setCompileSdkExtension(Integer compileSdkExtension)
```

Specifies the SDK Extension level to compile your project against. This value is optional.

When not provided the base extension for the given `compileSdk` API level will be selected.  

### setCompileSdkPreview

```
abstract void setCompileSdkPreview(String compileSdkPreview)
```

Specify a preview API to compile your project against.

For example, to try out the Android S preview, rather than `compileSdk = 30` you can use `compileSdkPreview = "S"`

Once the preview APIs are finalized, they will be allocated a stable integer value.  

### setMinSdk

```
abstract void setMinSdk(Integer minSdk)
```

The minimum SDK version. Setting this it will override previous calls of [minSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#minSdk()) and [minSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#minSdkPreview()) setters. Only one of [minSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#minSdk()) and [minSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/SettingsExtension#minSdkPreview()) should be set.

See [uses-sdk element documentation](http://developer.android.com/guide/topics/manifest/uses-sdk-element.html).  

### setMinSdkPreview

```
abstract void setMinSdkPreview(String minSdkPreview)
```  

### setNdkPath

```
abstract void setNdkPath(String ndkPath)
```

Requires the specified path to NDK be used.

See [com.android.build.api.dsl.CommonExtension.ndkPath](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/CommonExtension#ndkPath()) for more information  

### setNdkVersion

```
abstract void setNdkVersion(@NonNull String ndkVersion)
```

Requires the specified NDK version to be used.

See [com.android.build.api.dsl.CommonExtension.ndkVersion](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/dsl/CommonExtension#ndkVersion()) for more information