# Variant

# Variant

```
interface Variant : Component, HasAndroidResources
```

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

|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Known Direct Subclasses [ApplicationVariant](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/ApplicationVariant),[DynamicFeatureVariant](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/DynamicFeatureVariant),[LibraryVariant](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/LibraryVariant),[TestVariant](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/TestVariant) |-------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------| | [ApplicationVariant](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/ApplicationVariant)       | Properties for the main Variant of an application.                                                                                   | | [DynamicFeatureVariant](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/DynamicFeatureVariant) | <br />                                                                                                                               | | [LibraryVariant](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/LibraryVariant)               | [Variant](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Variant#)for Library projects   | | [TestVariant](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/TestVariant)                     | [Variant](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Variant#)for test-only modules. | |

Parent interface for all types of variants.

## Summary

|                                                                                                                                                                                                                                                                                                                                                                                                                   ### Public methods                                                                                                                                                                                                                                                                                                                                                                                                                   ||
|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| abstractT? | [getExtension](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Variant#getExtension(java.lang.Class))`(`type:` `[Class](http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html)<T>`)` Returns an extension object registered via the[VariantBuilder.registerExtension](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/VariantBuilder#registerExtension(java.lang.Class,%20com.android.build.api.variant.VariantBuilder.registerExtension.T))API or null if none were registered under the passed[type](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Variant#com.android.build.api.variant.Variant$getExtension(java.lang.Class((com.android.build.api.variant.Variant.getExtension.T)))/type). |

| ### Inherited functions ||
|---|---|
| From class[HasAndroidResources](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/HasAndroidResources) |-------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [ResValue.Key](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/ResValue.Key) | [makeResValueKey](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/HasAndroidResources#makeResValueKey(kotlin.String,%20kotlin.String))`(`type:` `[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`, `name:` `[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`)` <br /> Make a[ResValue.Key](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/ResValue.Key)to interact with[resValues](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/HasAndroidResources#resValues:org.gradle.api.provider.MapProperty)'s[MapProperty](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/MapProperty.html) <br /> | ||
| From class[Component](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Component) |------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [setAsmFramesComputationMode](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Component#setAsmFramesComputationMode(com.android.build.api.instrumentation.FramesComputationMode))`(`mode:` `[FramesComputationMode](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/instrumentation/FramesComputationMode.html#)`)` <br /> Sets the frame computation mode that will be applied to the bytecode of the classes instrumented by ASM visitors registered through[transformClassesWith](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Component#transformClassesWith(java.lang.Class,%20com.android.build.api.instrumentation.InstrumentationScope,%20kotlin.Function1)). The default mode is to[copy frames](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/instrumentation/FramesComputationMode.html#ENUM_VALUE:COPY_FRAMES). When setting this multiple times, the mode with the highest enum value will be selected. <br />                                                                                                                                                                                                                            | | [Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [transformClassesWith](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Component#transformClassesWith(java.lang.Class,%20com.android.build.api.instrumentation.InstrumentationScope,%20kotlin.Function1))`(`classVisitorFactoryImplClass:` `[Class](http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html)<out` `[AsmClassVisitorFactory](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/instrumentation/AsmClassVisitorFactory.html#)<ParamT>>`, `scope:` `[InstrumentationScope](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/instrumentation/InstrumentationScope.html#)`, `instrumentationParamsConfig:` `(ParamT)` `->` `[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)` <br /> Registers an asm class visitor to instrument the classes defined by the given scope. An instance of the factory will be instantiated and used to create visitors for each class. Example: ```scdoc androidComponentsExtension.onVariants(selector().all(), { transformClassesWith(AsmClassVisitorFactoryImpl.class, InstrumentationScope.Project) { params -> params.x = "value" } setAsmFramesComputationMode(COMPUTE_FRAMES_FOR_INSTRUMENTED_METHODS) }) ``` <br /> | ||

|                                                                                                                                                                                                                                                                                                                                                                                                                                         ### Properties                                                                                                                                                                                                                                                                                                                                                                                                                                          ||
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| abstract[MapProperty](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/MapProperty.html)\<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html),[BuildConfigField](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuildConfigField)\<out[Serializable](http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html)\>\> | [buildConfigFields](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Variant#buildConfigFields:org.gradle.api.provider.MapProperty) Variant's[BuildConfigField](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuildConfigField)which will be generated in the BuildConfig class.                                                                                                   |
| abstract[MapProperty](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/MapProperty.html)\<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html),[Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)\>                                                                                                                                               | [experimentalProperties](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Variant#experimentalProperties:org.gradle.api.provider.MapProperty) Additional per variant experimental properties.                                                                                                                                                                                                                                   |
| abstract[ExternalNativeBuild](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/ExternalNativeBuild)?                                                                                                                                                                                                                                                                       | [externalNativeBuild](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Variant#externalNativeBuild:com.android.build.api.variant.ExternalNativeBuild) Variant's cmake[ExternalNativeBuild](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/ExternalNativeBuild), initialized by merging the product flavor values or null if no cmake external build is configured for this variant. |
| abstract[MapProperty](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/MapProperty.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)\>                                                                                                                                         | [manifestPlaceholders](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Variant#manifestPlaceholders:org.gradle.api.provider.MapProperty) [MapProperty](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/MapProperty.html)of the variant's manifest placeholders.                                                                                                                                                |
| abstract[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)?                                                                                                                                                                                                                                                                                                                                  | [maxSdkVersion](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Variant#maxSdkVersion:kotlin.Int) Gets the maximum supported SDK Version for this variant.                                                                                                                                                                                                                                                                     |
| abstract[AndroidVersion](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/AndroidVersion)                                                                                                                                                                                                                                                                                  | [minSdkVersion](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Variant#minSdkVersion:com.android.build.api.variant.AndroidVersion) Gets the minimum supported SDK Version for this variant.                                                                                                                                                                                                                                   |
| abstract[Provider](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Provider.html)\<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)\>                                                                                                                                                                                                                                | [namespace](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Variant#namespace:org.gradle.api.provider.Provider) The namespace of the generated R and BuildConfig classes.                                                                                                                                                                                                                                                      |
| abstract[List](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html)\<[Component](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Component)\>                                                                                                                                                                                                | [nestedComponents](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Variant#nestedComponents:kotlin.collections.List) List of the components nested in this variant, the returned list will contain:                                                                                                                                                                                                                            |
| abstract[Packaging](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Packaging)                                                                                                                                                                                                                                                                                            | [packaging](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Variant#packaging:com.android.build.api.variant.Packaging) Variant's packagingOptions, initialized by the corresponding global DSL element.                                                                                                                                                                                                                        |
| abstract[ListProperty](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/ListProperty.html)\<[RegularFile](https://docs.gradle.org/current/javadoc/org/gradle/api/file/RegularFile.html)\>                                                                                                                                                                                                             | [proguardFiles](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Variant#proguardFiles:org.gradle.api.provider.ListProperty) List of proguard configuration files for this variant.                                                                                                                                                                                                                                             |
| abstract[AndroidVersion](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/AndroidVersion)                                                                                                                                                                                                                                                                                  | [targetSdkVersion](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Variant#targetSdkVersion:com.android.build.api.variant.AndroidVersion) Gets the target SDK Version for this variant.                                                                                                                                                                                                                                        |
| abstract[UnitTest](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/component/UnitTest.html#)?                                                                                                                                                                                                                                                                                     | [unitTest](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Variant#unitTest:com.android.build.api.component.UnitTest) Variant's[UnitTest](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/component/UnitTest.html#), or null if the unit tests for this variant are disabled.                                                                                                               |

| ### Inherited properties ||
|---|---|
| From class[Component](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Component) |-------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [Artifacts](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/artifact/Artifacts.html#)      | [artifacts](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Component#artifacts:com.android.build.api.artifact.Artifacts) <br /> Access to the variant's buildable artifacts for build customization. <br /> | | [JavaCompilation](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/JavaCompilation) | [javaCompilation](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Component#javaCompilation:com.android.build.api.variant.JavaCompilation) <br /> Access to the variant's java compilation options. <br />   | ||
| From class[ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/ComponentIdentity) |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)?                                                                                                                                                                                                                                                            | [buildType](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/ComponentIdentity#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/7.1/com/android/build/api/variant/ComponentIdentity#flavorName:kotlin.String) <br /> The multi-flavor name of the variant. This does not include the build type. If no flavors are present, this will return null The full name of the variant is queried via[name](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/ComponentIdentity#name:kotlin.String). <br /> | | [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)                                                                                                                                                                                                                                                             | [name](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/ComponentIdentity#name:kotlin.String) <br /> Component's name. <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/7.1/com/android/build/api/variant/ComponentIdentity#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[HasAndroidResources](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/HasAndroidResources) |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [Property](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Property.html)<[Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)>                                                                                                                                                               | [pseudoLocalesEnabled](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/HasAndroidResources#pseudoLocalesEnabled:org.gradle.api.provider.Property) <br /> Variant's is pseudo locales enabled, initialized by the corresponding DSL elements. <br />                                           | | [MapProperty](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/MapProperty.html)<[ResValue.Key](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/ResValue.Key),` `[ResValue](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/ResValue)> | [resValues](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/HasAndroidResources#resValues:org.gradle.api.provider.MapProperty) <br /> Variant's[ResValue](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/ResValue)which will be generated. <br /> | ||

## Public methods

### getExtension

```
abstract fun <T> getExtension(type: Class<T>): T?
```

Returns an extension object registered via the[VariantBuilder.registerExtension](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/VariantBuilder#registerExtension(java.lang.Class,%20com.android.build.api.variant.VariantBuilder.registerExtension.T))API or null if none were registered under the passed[type](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Variant#com.android.build.api.variant.Variant$getExtension(java.lang.Class((com.android.build.api.variant.Variant.getExtension.T)))/type).

| Return ||
|---|---|
| the registered object or null. ||

## Properties

### buildConfigFields

```
abstract val buildConfigFields: MapProperty<String, BuildConfigField<out Serializable>>
```

Variant's[BuildConfigField](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/BuildConfigField)which will be generated in the BuildConfig class.  

### experimentalProperties

```
abstract val experimentalProperties: MapProperty<String, Any>
```

Additional per variant experimental properties.

Initialized from[com.android.build.api.dsl.CommonExtension.experimentalProperties](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/CommonExtension.html#experimentalProperties:kotlin.collections.MutableMap)  

### externalNativeBuild

```
abstract val externalNativeBuild: ExternalNativeBuild?
```

Variant's cmake[ExternalNativeBuild](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/ExternalNativeBuild), initialized by merging the product flavor values or null if no cmake external build is configured for this variant.  

### manifestPlaceholders

```
abstract val manifestPlaceholders: MapProperty<String, String>
```

[MapProperty](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/MapProperty.html)of the variant's manifest placeholders.

Placeholders are organized with a key and a value. The value is a[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)that will be used as is in the merged manifest.

| Return ||
|---|---|
| the[MapProperty](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/MapProperty.html)with keys as[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) ||

### maxSdkVersion

```
abstract val maxSdkVersion: Int?
```

Gets the maximum supported SDK Version for this variant.  

### minSdkVersion

```
abstract val minSdkVersion: AndroidVersion
```

Gets the minimum supported SDK Version for this variant.  

### namespace

```
abstract val namespace: Provider<String>
```

The namespace of the generated R and BuildConfig classes. Also, the namespace used to resolve any relative class names that are declared in the AndroidManifest.xml.  

### nestedComponents

```
abstract val nestedComponents: List<Component>
```

List of the components nested in this variant, the returned list will contain:

- [UnitTest](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/component/UnitTest.html#)component if the unit tests for this variant are enabled,
- [AndroidTest](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/AndroidTest)component if this variant[HasAndroidTest](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/HasAndroidTest)and android tests for this variant are enabled,
- [TestFixtures](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/TestFixtures)component if this variant[HasTestFixtures](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/HasTestFixtures)and test fixtures for this variant are enabled.

Use this list to do operations on all nested components of this variant without having to manually check whether the variant has each component.

Example:  

```gdscript
androidComponents.onVariants(selector().withName("debug")) {
    // will return unitTests, androidTests, testFixtures for the debug variant (if enabled).
    nestedComponents.forEach { component ->
        component.transformClassesWith(NestedComponentsClassVisitorFactory::class.java,
                                       InstrumentationScope.Project) {}
    }
}
```  

### packaging

```
abstract val packaging: Packaging
```

Variant's packagingOptions, initialized by the corresponding global DSL element.  

### proguardFiles

```
abstract val proguardFiles: ListProperty<RegularFile>
```

List of proguard configuration files for this variant. The list is initialized from the corresponding DSL element, and cannot be queried at configuration time. At configuration time, you can only add new elements to the list.

This list will be initialized from[com.android.build.api.dsl.VariantDimension#proguardFile](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/variant/Variant#)for non test related variants and from[com.android.build.api.dsl.VariantDimension.testProguardFiles](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/dsl/VariantDimension.html#testProguardFiles(kotlin.Any))for test related variants.  

### targetSdkVersion

```
abstract val targetSdkVersion: AndroidVersion
```

Gets the target SDK Version for this variant.  

### unitTest

```
abstract val unitTest: UnitTest?
```

Variant's[UnitTest](https://developer.android.com/reference/tools/gradle-api/7.1/com/android/build/api/component/UnitTest.html#), or null if the unit tests for this variant are disabled.