# VariantExtensionConfig

[View Source](https://cs.android.com/search?q=file:com/android/build/api/variant/VariantExtensionConfig.kt+class:com.android.build.api.variant.VariantExtensionConfig) Added in 7.0.0


```
interface VariantExtensionConfig<VariantT : Variant>
```

<br />

*** ** * ** ***

Configuration object passed to the lambda responsible for creating a `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantExtension` for each `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Variant` instance.

| Parameters |
|---|---|
| `<VariantT : https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Variant>` | the type of `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/Variant` object. |

## Summary

| ### Public functions |
|---|---|
| `T` | `<T : https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html> https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantExtensionConfig#buildTypeExtension(java.lang.Class)(extensionType: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html<T>)` Returns the `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantExtensionConfig#variant()` specific extension registered through the `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/DslExtension#buildTypeExtensionType()` API. |
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html<T>` | `<T : https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html> https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantExtensionConfig#productFlavorsExtensions(java.lang.Class)(extensionType: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html<T>)` Returns the `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantExtensionConfig#variant()` specific extension registered through the `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/DslExtension#productFlavorExtensionType()` API. |
| `T` | `<T : https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html> https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantExtensionConfig#projectExtension(java.lang.Class)(extensionType: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html<T>)` Returns the project (across variants) extension registered through the `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/DslExtension#projectExtensionType()` API. |

| ### Public properties |
|---|---|
| `VariantT` | `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantExtensionConfig#variant()` Gets the variant object the `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantExtension` should be associated with. |

## Public functions

### buildTypeExtension

Added in 7.0.0

```
fun <T : Any> buildTypeExtension(extensionType: Class<T>): T
```

Returns the `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantExtensionConfig#variant()` specific extension registered through the `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/DslExtension#buildTypeExtensionType()` API.

| Returns |
|---|---|
| `T` | the custom extension for the `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantExtensionConfig#variant()`'s build type. |

### productFlavorsExtensions

Added in 7.0.0

```
fun <T : Any> productFlavorsExtensions(extensionType: Class<T>): List<T>
```

Returns the `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantExtensionConfig#variant()` specific extension registered through the `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/DslExtension#productFlavorExtensionType()` API.

| Returns |
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html<T>` | a `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html` of `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantExtensionConfig#productFlavorsExtensions(java.lang.Class)` extension for all the defined product flavors in the project. The order of the elements is the same as the order of product flavors returned by the `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/ComponentIdentity#productFlavors()` |

### projectExtension

Added in 7.0.0

```
fun <T : Any> projectExtension(extensionType: Class<T>): T
```

Returns the project (across variants) extension registered through the `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/DslExtension#projectExtensionType()` API.

## Public properties

### variant

Added in 7.0.0

```
val variant: VariantT
```

Gets the variant object the `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/variant/VariantExtension` should be associated with.