# Variant

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


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

<br />

Known direct subclasses [ApplicationVariant](https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/ApplicationVariant), [DynamicFeatureVariant](https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/DynamicFeatureVariant), [LibraryVariant](https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/LibraryVariant), [TestVariant](https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/TestVariant)

|---|---|
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/ApplicationVariant` | Model for application components that only contains build-time properties. |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/DynamicFeatureVariant` | Model for dynamic feature components that only contains build-time properties. |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/LibraryVariant` | Model for library components that only contains build-time properties. |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/TestVariant` | Model for test components that only contains build-time properties. |

Known indirect subclasses [KotlinMultiplatformAndroidVariant](https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/KotlinMultiplatformAndroidVariant)

|---|---|
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/KotlinMultiplatformAndroidVariant` | Properties for the main Variant of a kotlin multiplatform android library |

*** ** * ** ***

Model for variant components that only contains build-time properties

Variant components are the main output of the plugin (e.g. APKs, AARs). They contain references to optional secondary components (tests, fixtures)

It is the object passed to the `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/AndroidComponentsExtension#onVariants(com.android.build.api.variant.VariantSelector,kotlin.Function1)` method, like this:

```
androidComponents {
  onVariants(selector().all()) { variant: Variant ->
  }
}
```

Note that depending on the actual implementation of `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/AndroidComponentsExtension`, the object received may be of a child type. For instance `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/ApplicationAndroidComponentsExtension#onVariants(com.android.build.api.variant.VariantSelector,kotlin.Function1)` will pass `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/ApplicationVariant` to the lambda.

See [here](https://developer.android.com/build/extend-agp#variant-api-artifacts-tasks) for more information

## Summary

| ### Public functions |
|---|---|
| `T?` | `<T : https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Variant#getExtension(java.lang.Class)(type: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Class.html<T>)` Returns an extension object registered via the `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/VariantBuilder#registerExtension(java.lang.Class,kotlin.Any)` API or null if none were registered under the passed `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Variant#getExtension(java.lang.Class)`. |
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` | `@https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Variant#missingDimensionStrategy(kotlin.String,kotlin.Array)( dimension: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html, vararg requestedValues: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html )` Set up a new matching request for a given flavor dimension and value. |

| ### Public properties |
|---|---|
| `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/MapProperty.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html, https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/BuildConfigField<https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/Serializable.html>>?` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Variant#buildConfigFields()` Variant's `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/BuildConfigField` which will be generated in the BuildConfig class. |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/CompileSdkVersion` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Variant#compileSdk()` Gets the compile SDK Version for this variant. |
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Component>` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Variant#components()` List containing this variant and all of its `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Variant#nestedComponents()` |
| `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/MapProperty.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html, https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html>` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Variant#experimentalProperties()` Additional per variant experimental properties. |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/ExternalNativeBuild?` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Variant#externalNativeBuild()` Variant's cmake `https://developer.android.com/reference/tools/gradle-api/9.4/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. |
| `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/MapProperty.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html, https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html>` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Variant#manifestPlaceholders()` `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/MapProperty.html` of the variant's manifest placeholders. |
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html?` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Variant#maxSdk()` Gets the maximum supported SDK Version for this variant. |
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html?` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Variant#maxSdkVersion()` |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/AndroidVersion` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Variant#minSdk()` Gets the minimum supported SDK Version for this variant. |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/AndroidVersion` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Variant#minSdkVersion()` |
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Component>` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Variant#nestedComponents()` List of the components nested in this variant, the returned list will contain: |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Packaging` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Variant#packaging()` Variant's packagingOptions, initialized by the corresponding global DSL element. |
| `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/ListProperty.html<https://docs.gradle.org/current/javadoc/org/gradle/api/file/RegularFile.html>` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Variant#proguardFiles()` List of proguard configuration files for this variant. |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/AndroidVersion` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Variant#targetSdkVersion()` Gets the target SDK Version for this variant. |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/component/UnitTest?` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Variant#unitTest()` Variant's `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/component/UnitTest`, or null if the unit tests for this variant are disabled. |

### Inherited functions

From [com.android.build.api.variant.Component](https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Component) `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html` `@https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html
https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Component#computeTaskName(kotlin.String,kotlin.String)(action: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html, subject: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`

Utility method to create unique task name for component.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` `@https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html
https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Component#configureJavaCompileTask(kotlin.Function1)(action: (https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/compile/JavaCompile.html) -> https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`

Runs an action to configure Components's java compilation `https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/compile/JavaCompile.html` task.
`https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html` `@https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html
https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Component#getResolvableConfiguration(kotlin.String)(sourceSetConfigurationsAffix: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`

Access to the component's resolvable configuration corresponding to the source set configurations added via `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/AndroidComponentsExtension#addSourceSetConfigurations(kotlin.String)`.
From [com.android.build.api.variant.HasAndroidResources](https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/HasAndroidResources) `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/ResValue.Key` `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/HasAndroidResources#makeResValueKey(kotlin.String,kotlin.String)(type: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html, name: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`

Make a `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/ResValue.Key` to interact with `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/HasAndroidResources#resValues()`'s `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/MapProperty.html`

### Inherited properties

From [com.android.build.api.variant.Component](https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Component) `https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html` `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Component#annotationProcessorConfiguration()`

Access to the variant's annotation processor `https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html`; for example, the debugAnnotationProcessor `https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html` for the debug variant.
`https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/artifact/Artifacts` `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Component#artifacts()`

Access to the variant's buildable artifacts for build customization.
`https://docs.gradle.org/current/javadoc/org/gradle/api/file/FileCollection.html` `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Component#compileClasspath()`

Access to the variant's compile classpath.
`https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html` `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Component#compileConfiguration()`

Access to the variant's compile `https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html`; for example, the debugCompileClasspath `https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html` for the debug variant.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Component#debuggable()`

Whether the produced artifacts will be debuggable
`https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Instrumentation` `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Component#instrumentation()`

Access to the variant's instrumentation options.
`https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/JavaCompilation?` `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Component#javaCompilation()`

Access to the variant's java compilation options.
`https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/LifecycleTasks` `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Component#lifecycleTasks()`

Provides access to the `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/LifecycleTasks` created for this component.
`https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Provider.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html>` `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Component#namespace()`

The namespace of the generated R and BuildConfig classes.
`https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html` `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Component#runtimeConfiguration()`

Access to the variant's runtime `https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html`; for example, the debugRuntimeClasspath `https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/Configuration.html` for the debug variant.
`https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Sources` `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Component#sources()`

Access to variant's source files.
From [com.android.build.api.variant.ComponentIdentity](https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/ComponentIdentity) `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html?` `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/ComponentIdentity#buildType()`

Build type name.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html?` `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/ComponentIdentity#flavorName()`

The multi-flavor name of the variant.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html` `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/ComponentIdentity#name()`

Component's name.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-pair/index.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html, https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html>>` `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/ComponentIdentity#productFlavors()`

List of flavor names.
From [com.android.build.api.variant.HasAndroidResources](https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/HasAndroidResources) `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/Property.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html>` `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/HasAndroidResources#pseudoLocalesEnabled()`

Variant's is pseudo locales enabled, initialized by the corresponding DSL elements.
`https://docs.gradle.org/current/javadoc/org/gradle/api/provider/MapProperty.html<https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/ResValue.Key, https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/ResValue>` `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/HasAndroidResources#resValues()`

Variant's `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/ResValue` which will be generated.

## Public functions

### getExtension

Added in 7.0.0

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

Returns an extension object registered via the `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/VariantBuilder#registerExtension(java.lang.Class,kotlin.Any)` API or null if none were registered under the passed `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Variant#getExtension(java.lang.Class)`.

| Returns |
|---|---|
| `T?` | the registered object or null. |

### missingDimensionStrategy

Added in 8.2.0

```
@Incubating
fun missingDimensionStrategy(
    dimension: String,
    vararg requestedValues: String
): Unit
```

Set up a new matching request for a given flavor dimension and value.

| Parameters |
|---|---|
| `dimension: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html` | the flavor dimension |
| `vararg requestedValues: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html` | the flavor name(s) |

| See also |
|---|---|
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/BaseFlavor#missingDimensionStrategy(kotlin.String,kotlin.String)` | To learn more, read d.android.com//build/build-variants. |

## Public properties

### buildConfigFields

Added in 4.2.0

```
val buildConfigFields: MapProperty<String, BuildConfigField<Serializable>>?
```

Variant's `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/BuildConfigField` which will be generated in the BuildConfig class.

### compileSdk

Added in 9.4.1

```
val compileSdk: CompileSdkVersion
```

Gets the compile SDK Version for this variant.

### components

Added in 7.3.0

```
val components: List<Component>
```

List containing this variant and all of its `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/Variant#nestedComponents()`

Example:

```
androidComponents.onVariants(selector().withName("debug")) {
    // components contains the debug variant along with its unitTests, androidTests, and
    // testFixtures (if enabled).
    components.forEach { component ->
        component.runtimeConfiguration
            .resolutionStrategy
            .dependencySubstitution {
                substitute(project(":foo")).using(project(":bar"))
            }
    }
}
```

### experimentalProperties

Added in 7.0.0

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

Additional per variant experimental properties.

Initialized from `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/CommonExtension#experimentalProperties()`

Values provided should not be based on a Task execution result, as most of these properties are read during configuration.

### externalNativeBuild

Added in 7.0.0

```
val externalNativeBuild: ExternalNativeBuild?
```

Variant's cmake `https://developer.android.com/reference/tools/gradle-api/9.4/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

Added in 4.2.0

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

`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 `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html` that will be used as is in the merged manifest.

| Returns |
|---|---|
| `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/MapProperty.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html, https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html>` | the `https://docs.gradle.org/current/javadoc/org/gradle/api/provider/MapProperty.html` with keys as `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html` |

### maxSdk

Added in 8.1.0

```
val maxSdk: Int?
```

Gets the maximum supported SDK Version for this variant.

### maxSdkVersion

```
val maxSdkVersion: Int?
```

### minSdk

Added in 8.1.0

```
val minSdk: AndroidVersion
```

Gets the minimum supported SDK Version for this variant.

### minSdkVersion

```
val minSdkVersion: AndroidVersion
```

### nestedComponents

Added in 7.1.0

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

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

- `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/component/UnitTest` component if the unit tests for this variant are enabled,

- `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/AndroidTest` component if this variant `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/HasDeviceTests` and android tests for this variant are enabled,

- `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/variant/TestFixtures` component if this variant `https://developer.android.com/reference/tools/gradle-api/9.4/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:

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

### packaging

Added in 7.0.0

```
val packaging: Packaging
```

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

### proguardFiles

Added in 7.0.0

```
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 for non test related variants and from `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/VariantDimension#testProguardFiles(kotlin.Array)` for test related variants.

### targetSdkVersion

Added in 7.0.0 Deprecated in 7.4.0

```
val targetSdkVersion: AndroidVersion
```

Gets the target SDK Version for this variant.

### unitTest

```
val unitTest: UnitTest?
```

Variant's `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/component/UnitTest`, or null if the unit tests for this variant are disabled.