# VariantBuilder

# VariantBuilder

<br />

```
public interface VariantBuilder extends ComponentBuilder
```

<br />

Known direct subclasses  
[ApplicationVariantBuilder](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ApplicationVariantBuilder),[DynamicFeatureVariantBuilder](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/DynamicFeatureVariantBuilder),[LibraryVariantBuilder](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/LibraryVariantBuilder),[TestVariantBuilder](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/TestVariantBuilder)  

|--------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [ApplicationVariantBuilder](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ApplicationVariantBuilder)       | Application specific variant object that contains properties that will determine the variant's build flow.                                                               |
| [DynamicFeatureVariantBuilder](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/DynamicFeatureVariantBuilder) |                                                                                                                                                                          |
| [LibraryVariantBuilder](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/LibraryVariantBuilder)               | [VariantBuilder](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder)type for library projects                |
| [TestVariantBuilder](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/TestVariantBuilder)                     | [VariantBuilder](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder)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 boolean`                                                                                        | [getEnableUnitTest](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#getEnableUnitTest())`()` Set to`true`if the variant's has any unit tests, false otherwise.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `abstract `[Integer](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html) | [getMaxSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#getMaxSdk())`()` Gets the maximum supported SDK Version for this variant.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `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/variant/VariantBuilder#getMinSdk())`()` Gets or sets the minimum supported SDK Version for this variant.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `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/variant/VariantBuilder#getMinSdkPreview())`()` Gets or sets the minimum supported SDK Version for this variant as a Preview codename.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `abstract int`                                                                                            | [getRenderscriptTargetApi](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#getRenderscriptTargetApi())`()` Specifies the bytecode version to be generated.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `abstract `[Integer](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html) | [getTargetSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#getTargetSdk())`()` Gets or sets the target SDK Version for this variant as a Preview codename.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `abstract `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)   | [getTargetSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#getTargetSdkPreview())`()` Gets or sets the target SDK Version for this variant as a Preview codename.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `abstract boolean`                                                                                        | [getUnitTestEnabled](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#getUnitTestEnabled())`()` Set to`true`if the variant's has any unit tests, false otherwise.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `abstract void`                                                                                           | `<T extends `[Object](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html)`> `[registerExtension](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#registerExtension(java.lang.Class,kotlin.Any))`(` ` @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Class](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html)`<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` T> type,` ` @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` T instance` `)` Registers an extension object to the variant object. |
| `abstract void`                                                                                           | [setEnableUnitTest](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#setEnableUnitTest(kotlin.Boolean))`(boolean enableUnitTest)` Set to`true`if the variant's has any unit tests, false otherwise.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `abstract void`                                                                                           | [setMaxSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#setMaxSdk(kotlin.Int))`(`[Integer](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html)` maxSdk)` Gets the maximum supported SDK Version for this variant.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `abstract void`                                                                                           | [setMinSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#setMinSdk(kotlin.Int))`(`[Integer](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html)` minSdk)` Gets or sets the minimum supported SDK Version for this variant.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `abstract void`                                                                                           | [setMinSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#setMinSdkPreview(kotlin.String))`(`[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` minSdkPreview)` Gets or sets the minimum supported SDK Version for this variant as a Preview codename.                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `abstract void`                                                                                           | [setRenderscriptTargetApi](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#setRenderscriptTargetApi(kotlin.Int))`(int renderscriptTargetApi)` Specifies the bytecode version to be generated.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `abstract void`                                                                                           | [setTargetSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#setTargetSdk(kotlin.Int))`(`[Integer](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html)` targetSdk)` Gets or sets the target SDK Version for this variant as a Preview codename.                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `abstract void`                                                                                           | [setTargetSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#setTargetSdkPreview(kotlin.String))`(`[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)` targetSdkPreview)` Gets or sets the target SDK Version for this variant as a Preview codename.                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `abstract void`                                                                                           | [setUnitTestEnabled](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#setUnitTestEnabled(kotlin.Boolean))`(boolean unitTestEnabled)` Set to`true`if the variant's has any unit tests, false otherwise.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             ### Inherited methods                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| From[com.android.build.api.variant.ComponentBuilder](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentBuilder) |--------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `abstract boolean` | [getEnable](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentBuilder#getEnable())`()` Set to`true`if the variant is active and should be configured, false otherwise.                             | | `abstract boolean` | [getEnabled](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentBuilder#getEnabled())`()`                                                                                                           | | `abstract void`    | [setEnable](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentBuilder#setEnable(kotlin.Boolean))`(boolean enable)` Set to`true`if the variant is active and should be configured, false otherwise. | | `abstract void`    | [setEnabled](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentBuilder#setEnabled(kotlin.Boolean))`(boolean enabled)`                                                                              |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| From[com.android.build.api.variant.ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentIdentity) |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `abstract `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | [getBuildType](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentIdentity#getBuildType())`()` Build type name, might be replaced with access to locked DSL object once ready.                 | | `abstract `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | [getFlavorName](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentIdentity#getFlavorName())`()` The multi-flavor name of the variant.                                                         | | `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)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | [getName](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentIdentity#getName())`()` Component's name.                                                                                         | | `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[List](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html)`<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Pair](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html)`<@`[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)`, @`[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)`>>` | [getProductFlavors](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/ComponentIdentity#getProductFlavors())`()` List of flavor names, might be replaced with access to locked DSL objects once ready. | |

## Public methods

### getEnableUnitTest

```
abstract boolean getEnableUnitTest()
```

Set to`true`if the variant's has any unit tests, false otherwise. Value is Boolean#True by default.  

### getMaxSdk

```
abstract Integer getMaxSdk()
```

Gets the maximum supported SDK Version for this variant.  

### getMinSdk

```
abstract Integer getMinSdk()
```

Gets or sets the minimum supported SDK Version for this variant. Setting this it will override previous calls of[minSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#minSdk())and[minSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#minSdkPreview())setters. Only one of[minSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#minSdk())and[minSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#minSdkPreview())should be set.  

|                                            Returns                                             |
|------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Integer](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html) | the minimum supported SDK Version or null if[minSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#minSdkPreview())was used to set it. |

### getMinSdkPreview

```
abstract String getMinSdkPreview()
```

Gets or sets the minimum supported SDK Version for this variant as a Preview codename. Setting this it will override previous calls of[minSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#minSdk())and[minSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#minSdkPreview())setters. Only one of[minSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#minSdk())and[minSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#minSdkPreview())should be set.  

|                                           Returns                                            |
|----------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html) | the minimum supported SDK Version or null if[minSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#minSdk())was used to set it. |

### getRenderscriptTargetApi

```
abstract int getRenderscriptTargetApi()
```

Specifies the bytecode version to be generated. We recommend you set this value to the lowest API level able to provide all the functionality you are using  

| Returns |
|---------|-----------------------------------------------------|
| `int`   | the renderscript target api or -1 if not specified. |

### getTargetSdk

```
abstract Integer getTargetSdk()
```

Gets or sets the target SDK Version for this variant as a Preview codename. Setting this it will override previous calls of[targetSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#targetSdk())and[targetSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#targetSdkPreview())setters. Only one of[targetSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#targetSdk())and[targetSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#targetSdkPreview())should be set.

targetSdk is now managed by[GeneratesApkBuilder](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/GeneratesApkBuilder)instead of[VariantBuilder](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder).  

|                                            Returns                                             |
|------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Integer](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Integer.html) | the target SDK Version or null if[targetSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#targetSdkPreview())was used to set it. |

### getTargetSdkPreview

```
abstract String getTargetSdkPreview()
```

Gets or sets the target SDK Version for this variant as a Preview codename. Setting this it will override previous calls of[targetSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#targetSdk())and[targetSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#targetSdkPreview())setters. Only one of[targetSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#targetSdk())and[targetSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#targetSdkPreview())should be set.

targetSdkPreview is now managed by[GeneratesApkBuilder](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/GeneratesApkBuilder)instead of[VariantBuilder](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder).  

|                                           Returns                                            |
|----------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html) | the target supported SDK Version or null if[targetSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#targetSdkPreview())was used to set it. |

### getUnitTestEnabled

```
abstract boolean getUnitTestEnabled()
```

Set to`true`if the variant's has any unit tests, false otherwise. Value is Boolean#True by default.  

### registerExtension

```
abstract void <T extends Object> registerExtension(
    @NonNull Class<@NonNull T> type,
    @NonNull T instance
)
```

Registers an extension object to the variant object. Extension objects can be looked up during the[AndroidComponentsExtension.onVariants](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/AndroidComponentsExtension#onVariants(com.android.build.api.variant.VariantSelector,kotlin.Function1))callbacks by using the[Variant.getExtension](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/Variant#getExtension(java.lang.Class))API.

This is very useful for third party plugins that want to attach some variant specific configuration object to the Android Gradle Plugin variant object and make it available to other plugins.  

|                                                                                                                                                           Parameters                                                                                                                                                           |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[Class](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html)`<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` T> type` | the registered object type (can be a supertype of[instance](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#registerExtension(java.lang.Class,kotlin.Any))), this is the type that must be passed to the[Variant.getExtension](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/Variant#getExtension(java.lang.Class))API. |
| `@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` T instance`                                                                                                                                                                                                       | the object to associate to the AGP Variant object.                                                                                                                                                                                                                                                                                                                                                                                       |

### setEnableUnitTest

```
abstract void setEnableUnitTest(boolean enableUnitTest)
```

Set to`true`if the variant's has any unit tests, false otherwise. Value is Boolean#True by default.  

### setMaxSdk

```
abstract void setMaxSdk(Integer maxSdk)
```

Gets the maximum supported SDK Version for this variant.  

### setMinSdk

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

Gets or sets the minimum supported SDK Version for this variant. Setting this it will override previous calls of[minSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#minSdk())and[minSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#minSdkPreview())setters. Only one of[minSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#minSdk())and[minSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#minSdkPreview())should be set.  

| Returns |
|---------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `void`  | the minimum supported SDK Version or null if[minSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#minSdkPreview())was used to set it. |

### setMinSdkPreview

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

Gets or sets the minimum supported SDK Version for this variant as a Preview codename. Setting this it will override previous calls of[minSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#minSdk())and[minSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#minSdkPreview())setters. Only one of[minSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#minSdk())and[minSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#minSdkPreview())should be set.  

| Returns |
|---------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `void`  | the minimum supported SDK Version or null if[minSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#minSdk())was used to set it. |

### setRenderscriptTargetApi

```
abstract void setRenderscriptTargetApi(int renderscriptTargetApi)
```

Specifies the bytecode version to be generated. We recommend you set this value to the lowest API level able to provide all the functionality you are using  

| Returns |
|---------|-----------------------------------------------------|
| `void`  | the renderscript target api or -1 if not specified. |

### setTargetSdk

```
abstract void setTargetSdk(Integer targetSdk)
```

Gets or sets the target SDK Version for this variant as a Preview codename. Setting this it will override previous calls of[targetSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#targetSdk())and[targetSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#targetSdkPreview())setters. Only one of[targetSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#targetSdk())and[targetSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#targetSdkPreview())should be set.

targetSdk is now managed by[GeneratesApkBuilder](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/GeneratesApkBuilder)instead of[VariantBuilder](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder).  

| Returns |
|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `void`  | the target SDK Version or null if[targetSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#targetSdkPreview())was used to set it. |

### setTargetSdkPreview

```
abstract void setTargetSdkPreview(String targetSdkPreview)
```

Gets or sets the target SDK Version for this variant as a Preview codename. Setting this it will override previous calls of[targetSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#targetSdk())and[targetSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#targetSdkPreview())setters. Only one of[targetSdk](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#targetSdk())and[targetSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#targetSdkPreview())should be set.

targetSdkPreview is now managed by[GeneratesApkBuilder](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/GeneratesApkBuilder)instead of[VariantBuilder](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder).  

| Returns |
|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `void`  | the target supported SDK Version or null if[targetSdkPreview](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/VariantBuilder#targetSdkPreview())was used to set it. |

### setUnitTestEnabled

```
abstract void setUnitTestEnabled(boolean unitTestEnabled)
```

Set to`true`if the variant's has any unit tests, false otherwise. Value is Boolean#True by default.