# VariantExtensionConfig

# 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  

<br />

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

<br />

*** ** * ** ***

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

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

## Summary

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

| ### Public properties |
|-----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `VariantT`            | [variant](https://developer.android.com/reference/tools/gradle-api/8.13/com/android/build/api/variant/VariantExtensionConfig#variant()) Gets the variant object the[com.android.build.api.variant.VariantExtension](https://developer.android.com/reference/tools/gradle-api/8.13/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[variant](https://developer.android.com/reference/tools/gradle-api/8.13/com/android/build/api/variant/VariantExtensionConfig#variant())specific extension registered through the[com.android.build.api.variant.DslExtension.buildTypeExtensionType](https://developer.android.com/reference/tools/gradle-api/8.13/com/android/build/api/variant/DslExtension#buildTypeExtensionType())API.  

| Returns |
|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `T`     | the custom extension for the[variant](https://developer.android.com/reference/tools/gradle-api/8.13/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[variant](https://developer.android.com/reference/tools/gradle-api/8.13/com/android/build/api/variant/VariantExtensionConfig#variant())specific extension registered through the[com.android.build.api.variant.DslExtension.productFlavorExtensionType](https://developer.android.com/reference/tools/gradle-api/8.13/com/android/build/api/variant/DslExtension#productFlavorExtensionType())API.  

|                                            Returns                                            |
|-----------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)`<T>` | a[List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)of[T](https://developer.android.com/reference/tools/gradle-api/8.13/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[Variant.productFlavors](https://developer.android.com/reference/tools/gradle-api/8.13/com/android/build/api/variant/Variant#productFlavors()) |

### projectExtension

Added in 7.0.0  

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

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

## Public properties

### variant

Added in 7.0.0  

```
val variant: VariantT
```

Gets the variant object the[com.android.build.api.variant.VariantExtension](https://developer.android.com/reference/tools/gradle-api/8.13/com/android/build/api/variant/VariantExtension)should be associated with.