# DynamicFeatureVariantDimension

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


```
interface DynamicFeatureVariantDimension : VariantDimension
```

<br />

Known direct subclasses [DynamicFeatureBaseFlavor](https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/DynamicFeatureBaseFlavor), [DynamicFeatureBuildType](https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/DynamicFeatureBuildType)

|---|---|
| `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/DynamicFeatureBaseFlavor` | Shared properties between DSL objects `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/DynamicFeatureProductFlavor` and `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/DynamicFeatureDefaultConfig` |
| `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/DynamicFeatureBuildType` | 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 [DynamicFeatureDefaultConfig](https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/DynamicFeatureDefaultConfig), [DynamicFeatureProductFlavor](https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/DynamicFeatureProductFlavor)

|---|---|
| `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/DynamicFeatureDefaultConfig` | Specifies defaults for properties that the Android dynamic-feature plugin applies to all build variants. |
| `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/DynamicFeatureProductFlavor` | Encapsulates all product flavors properties for dynamic feature projects. |

*** ** * ** ***

Shared properties between DSL objects that contribute to an dynamic feature variant.

That is, `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/DynamicFeatureBuildType` and `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/DynamicFeatureProductFlavor` and `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/DynamicFeatureDefaultConfig`.

## Summary

### Inherited functions

From [com.android.build.api.dsl.VariantDimension](https://developer.android.com/reference/tools/gradle-api/9.6/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.6/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.6/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.6/com/android/build/api/dsl/VariantDimension#externalNativeBuild(kotlin.Function1)(action: https://developer.android.com/reference/tools/gradle-api/9.6/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.6/com/android/build/api/dsl/VariantDimension#javaCompileOptions(kotlin.Function1)(action: https://developer.android.com/reference/tools/gradle-api/9.6/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.6/com/android/build/api/dsl/VariantDimension#ndk(kotlin.Function1)(action: https://developer.android.com/reference/tools/gradle-api/9.6/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.6/com/android/build/api/dsl/VariantDimension#optimization(kotlin.Function1))(action: https://developer.android.com/reference/tools/gradle-api/9.6/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.6/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.6/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.6/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?` `@org.gradle.declarative.dsl.model.annotations.HiddenInDefinition
[setManifestPlaceholders](https://developer.android.com/reference/tools/gradle-api/9.6/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.6/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.6/com/android/build/api/dsl/VariantDimension#shaders(kotlin.Function1)(action: https://developer.android.com/reference/tools/gradle-api/9.6/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.6/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.6/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.6/com/android/build/api/dsl/VariantDimension) `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/ExternalNativeBuildFlags` `https://developer.android.com/reference/tools/gradle-api/9.6/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.6/com/android/build/api/dsl/JavaCompileOptions` `https://developer.android.com/reference/tools/gradle-api/9.6/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.6/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.6/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.6/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.6/com/android/build/api/dsl/Ndk` `https://developer.android.com/reference/tools/gradle-api/9.6/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.6/com/android/build/api/dsl/Optimization` `https://developer.android.com/reference/tools/gradle-api/9.6/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.6/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.6/com/android/build/api/dsl/Shaders` `https://developer.android.com/reference/tools/gradle-api/9.6/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.6/com/android/build/api/dsl/VariantDimension#testProguardFiles()`

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