# ApplicationVariantDimension

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


```
interface ApplicationVariantDimension : VariantDimension
```

<br />

Known direct subclasses [ApplicationBaseFlavor](https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/ApplicationBaseFlavor), [ApplicationBuildType](https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/ApplicationBuildType)

|---|---|
| `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/ApplicationBaseFlavor` | Shared properties between `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/ApplicationProductFlavor` and `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/ApplicationDefaultConfig` |
| `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/ApplicationBuildType` | Build types define certain properties that Gradle uses when building and packaging your app, and are typically configured for different stages of your development lifecycle. |

Known indirect subclasses [ApplicationDefaultConfig](https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/ApplicationDefaultConfig), [ApplicationProductFlavor](https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/ApplicationProductFlavor)

|---|---|
| `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/ApplicationDefaultConfig` | Specifies defaults for properties that the Android application plugin applies to all build variants. |
| `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/ApplicationProductFlavor` | Encapsulates all product flavors properties for application projects. |

*** ** * ** ***

Shared properties between DSL objects that contribute to an application variant.

That is, `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/ApplicationBuildType` and `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/ApplicationProductFlavor` and `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/ApplicationDefaultConfig`.

## Summary

| ### Public properties |
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html?` | `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/ApplicationVariantDimension#applicationIdSuffix()` Application id suffix. |
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html?` | `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/ApplicationVariantDimension#multiDexEnabled()` **This property is deprecated.** Legacy multidex (minSdk \<= 19) is deprecated in AGP 9.4 and will be unsupported in AGP 11. |
| `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/ApkSigningConfig?` | `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/ApplicationVariantDimension#signingConfig()` The associated signing config or null if none are set on the variant dimension. |
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html?` | `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/ApplicationVariantDimension#versionNameSuffix()` Version name suffix. |

### Inherited functions

From [com.android.build.api.dsl.VariantDimension](https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension) `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension#addManifestPlaceholders(kotlin.collections.Map)(manifestPlaceholders: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-map/index.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html, https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html>)`

Adds manifest placeholders.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension#buildConfigField(kotlin.String,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, value: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`

Adds a new field to the generated BuildConfig 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.5/com/android/build/api/dsl/VariantDimension#externalNativeBuild(kotlin.Function1)(action: https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/ExternalNativeBuildFlags.() -> https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`

Encapsulates per-variant CMake and ndk-build configurations for your external native build.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension#javaCompileOptions(kotlin.Function1)(action: https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/JavaCompileOptions.() -> https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`

Options for configuring Java compilation.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension#ndk(kotlin.Function1)(action: https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/Ndk.() -> https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`

Encapsulates per-variant configurations for the NDK, such as ABI filters.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` `@https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html
[optimization](https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension#optimization(kotlin.Function1))(action: https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/Optimization.() -> https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`

**This function is deprecated.** Use ApplicationBuildType.optimization(action) instead
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html` `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension#proguardFile(kotlin.Any)(proguardFile: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)`

Adds a new ProGuard configuration file.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html` `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension#proguardFiles(kotlin.Array)(vararg files: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)`

Adds new ProGuard configuration files.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension#resValue(kotlin.String,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, value: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`

Adds a new generated resource.
`https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Void.html?` `@https://developer.android.com/reference/tools/gradle-api/9.5/org/gradle/declarative/dsl/model/annotations/HiddenInDefinition
[setManifestPlaceholders](https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension#setManifestPlaceholders(kotlin.collections.Map))(manifestPlaceholders: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-map/index.html<https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html, https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html>)`

**This function is deprecated.** Use manifestPlaceholders property instead
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html` `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension#setProguardFiles(kotlin.collections.Iterable)(proguardFileIterable: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-iterable/index.html<*>)`

Replaces the ProGuard configuration files.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension#shaders(kotlin.Function1)(action: https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/Shaders.() -> https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`

Configure the shader compiler options.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html` `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension#testProguardFile(kotlin.Any)(proguardFile: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)`

Adds a proguard rule file to be used when processing test code.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html` `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension#testProguardFiles(kotlin.Array)(vararg proguardFiles: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)`

Adds proguard rule files to be used when processing test code.

### Inherited properties

From [com.android.build.api.dsl.VariantDimension](https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension) `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/ExternalNativeBuildFlags` `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension#externalNativeBuild()`

Encapsulates per-variant CMake and ndk-build configurations for your external native build.
`https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/JavaCompileOptions` `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension#javaCompileOptions()`

Options for configuring Java compilation.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-map/index.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.5/com/android/build/api/dsl/VariantDimension#manifestPlaceholders()`

The manifest placeholders.
`https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/File.html?` `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension#multiDexKeepFile()`

**This property is deprecated.** Legacy multidex (minSdk \<= 19) is deprecated in AGP 9.4 and will be unsupported in AGP 11.
`https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/File.html?` `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension#multiDexKeepProguard()`

**This property is deprecated.** Legacy multidex (minSdk \<= 19) is deprecated in AGP 9.4 and will be unsupported in AGP 11.
`https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/Ndk` `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension#ndk()`

Encapsulates per-variant configurations for the NDK, such as ABI filters.
`https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/Optimization` `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension#optimization()`

**This property is deprecated.** Use ApplicationBuildType.optimization instead
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-list/index.html<https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/File.html>` `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension#proguardFiles()`

Specifies the ProGuard configuration files that the plugin should use.
`https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/Shaders` `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension#shaders()`

Options for configuring the shader compiler.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-list/index.html<https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/File.html>` `https://developer.android.com/reference/tools/gradle-api/9.5/com/android/build/api/dsl/VariantDimension#testProguardFiles()`

The collection of proguard rule files to be used when processing test code.

## Public properties

### applicationIdSuffix

Added in 4.2.0

```
var applicationIdSuffix: String?
```

Application id suffix. It is appended to the "base" application id when calculating the final application id for a variant.

In case there are product flavor dimensions specified, the final application id suffix will contain the suffix from the default product flavor, followed by the suffix from product flavor of the first dimension, second dimension and so on. All of these will have a dot in between e.g. "defaultSuffix.dimension1Suffix.dimensions2Suffix".

### multiDexEnabled

Added in 4.2.0 Deprecated in 9.5.1

```
var multiDexEnabled: Boolean?
```

> [!CAUTION]
> **This property is deprecated.**   
> Legacy multidex (minSdk \<= 19) is deprecated in AGP 9.4 and will be unsupported in AGP 11. Native multidex is always supported for minSdk 21+.

Returns whether multi-dex is enabled.

This can be null if the flag is not set, in which case the default value is used.

Legacy multidex (minSdk \<= 19) is deprecated in AGP 9.4 and will be unsupported in AGP 11. Native multidex is always supported for minSdk 21+.

### signingConfig

Added in 4.2.0

```
var signingConfig: ApkSigningConfig?
```

The associated signing config or null if none are set on the variant dimension.

### versionNameSuffix

Added in 4.2.0

```
var versionNameSuffix: String?
```

Version name suffix. It is appended to the "base" version name when calculating the final version name for a variant.

In case there are product flavor dimensions specified, the final version name suffix will contain the suffix from the default product flavor, followed by the suffix from product flavor of the first dimension, second dimension and so on.