# Variant

# Variant

```
@Incubating interface Variant<PropertiesT : VariantProperties> : Component<PropertiesT>, ActionableComponentObject
```

|----------------------------------------------------------------------------------------------------------------------------------------------|
| [com.android.build.api.variant.Variant](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/Variant#) |

|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Known Direct Subclasses [ApplicationVariant](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/ApplicationVariant),[DynamicFeatureVariant](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/DynamicFeatureVariant),[LibraryVariant](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/LibraryVariant),[TestVariant](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/TestVariant) |-------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------| | [ApplicationVariant](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/ApplicationVariant)       | Application specific variant object that contains properties that will determine the variant's build flow.                                             | | [DynamicFeatureVariant](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/DynamicFeatureVariant) | <br />                                                                                                                                                 | | [LibraryVariant](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/LibraryVariant)               | [Variant](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/Variant#)type for library projects                | | [TestVariant](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/TestVariant)                     | [Variant](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/Variant#)type for tests associated with a module. | |

Variant object that contains properties that must be set during configuration time as it changes the build flow for the variant.

## Summary

|                                                                                                                                                                                                                                                                                                         ### Public methods                                                                                                                                                                                                                                                                                                          ||
|--------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| abstract[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [androidTest](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/Variant#androidTest(kotlin.Function1))`(`action:` `[AndroidTest](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/AndroidTest.html#)<[AndroidTestProperties](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/AndroidTestProperties.html#)>.()` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)` <br /> |
| abstract[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [androidTestProperties](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/Variant#androidTestProperties(kotlin.Function1))`(`action:` `[AndroidTestProperties](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/AndroidTestProperties.html#).()` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)` <br />                                                                                                            |
| abstract[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [unitTest](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/Variant#unitTest(kotlin.Function1))`(`action:` `[UnitTest](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/UnitTest.html#)<[UnitTestProperties](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/UnitTestProperties.html#)>.()` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)` <br />                   |
| abstract[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [unitTestProperties](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/Variant#unitTestProperties(kotlin.Function1))`(`action:` `[UnitTestProperties](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/UnitTestProperties.html#).()` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)` <br />                                                                                                                        |

| ### Inherited functions ||
|---|---|
| From class[Component](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/Component.html#) |------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [onProperties](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/Component.html#onProperties(kotlin.Function1))`(`action:` `PropertiesT.()` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)` <br /> Runs the[Action](https://docs.gradle.org/current/javadoc/org/gradle/api/Action.html)block on the[VariantProperties](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/VariantProperties)object once created. <br /> | ||

|                                                                                                             ### Properties                                                                                                              ||
|------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|
| abstract[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | [minSdkVersion](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/variant/Variant#minSdkVersion:kotlin.Int) <br /> |

| ### Inherited properties ||
|---|---|
| From class[ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/ComponentIdentity.html#) |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)?                                                                                                                                                                                                                                                            | [buildType](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/ComponentIdentity.html#buildType:kotlin.String) <br /> Build Type name, might be replaced with access to locked DSL object once ready <br />                                                                                                                                                                                      | | [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)                                                                                                                                                                                                                                                             | [flavorName](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/ComponentIdentity.html#flavorName:kotlin.String) <br /> The multi-flavor name of the variant. This does not include the build type. If no flavors are present, this is an empty string. The full name of the variant is queried via[getName](https://docs.gradle.org/current/javadoc/org/gradle/api/Named.html#getName()) <br /> | | [List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)<[Pair](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html)<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html),` `[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)>> | [productFlavors](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/ComponentIdentity.html#productFlavors:kotlin.collections.List) <br /> List of flavor names, might be replaced with access to locked DSL objects once ready The order is properly sorted based on the associated dimension order <br />                                                                                       | ||
| From class[Component](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/Component.html#) |------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) | [enabled](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/component/Component.html#enabled:kotlin.Boolean) <br /> Set to True if the variant is active and should be configured, false otherwise. <br /> | ||

## Public methods

### androidTest

```
abstract fun androidTest(action: AndroidTest<AndroidTestProperties>.() -> Unit): Unit
```  

### androidTestProperties

```
abstract fun androidTestProperties(action: AndroidTestProperties.() -> Unit): Unit
```  

### unitTest

```
abstract fun unitTest(action: UnitTest<UnitTestProperties>.() -> Unit): Unit
```  

### unitTestProperties

```
abstract fun unitTestProperties(action: UnitTestProperties.() -> Unit): Unit
```

## Properties

### minSdkVersion

```
abstract var minSdkVersion: Int
```