# LibraryVariantDimension

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


```
interface LibraryVariantDimension : VariantDimension
```

<br />

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

|---|---|
| `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/LibraryBaseFlavor` | Shared properties between `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/LibraryProductFlavor` and `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/LibraryDefaultConfig` |
| `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/LibraryBuildType` | Build types define certain properties that Gradle uses when building and packaging your library, and are typically configured for different stages of your development lifecycle. |

Known indirect subclasses [LibraryDefaultConfig](https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/LibraryDefaultConfig), [LibraryProductFlavor](https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/LibraryProductFlavor)

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

*** ** * ** ***

Shared properties between DSL objects that contribute to a library variant.

That is, `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/LibraryBuildType` and `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/LibraryProductFlavor` and `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/LibraryDefaultConfig`.

## Summary

| ### Public functions |
|---|---|
| `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/LibraryVariantDimension#aarMetadata(kotlin.Function1)(action: https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/AarMetadata.() -> https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)` Options for configuring AAR metadata. |
| `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/LibraryVariantDimension#consumerProguardFile(kotlin.Any)(proguardFile: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)` Adds a proguard rule file to be included in the published AAR. |
| `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/LibraryVariantDimension#consumerProguardFiles(kotlin.Array)(vararg proguardFiles: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)` Adds proguard rule files to be included in the published AAR. |

| ### Public properties |
|---|---|
| `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/AarMetadata` | `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/LibraryVariantDimension#aarMetadata()` Options for configuring AAR metadata. |
| `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/LibraryVariantDimension#consumerProguardFiles()` ProGuard rule files to be included in the published AAR. |
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html?` | `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/LibraryVariantDimension#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.6/com/android/build/api/dsl/ApkSigningConfig?` | `https://developer.android.com/reference/tools/gradle-api/9.6/com/android/build/api/dsl/LibraryVariantDimension#signingConfig()` The associated signing config or null if none are set on the variant dimension. |

### 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.

## Public functions

### aarMetadata

Added in 4.2.0

```
fun aarMetadata(action: AarMetadata.() -> Unit): Unit
```

Options for configuring AAR metadata.

### consumerProguardFile

Added in 4.2.0

```
fun consumerProguardFile(proguardFile: Any): Any
```

Adds a proguard rule file to be included in the published AAR.

This proguard rule file will then be used by any application project that consume the AAR (if proguard is enabled).

This allows AAR to specify shrinking or obfuscation exclude rules.

This is only valid for Library project. This is ignored in Application project.

This method has a return value for legacy reasons.

### consumerProguardFiles

Added in 4.2.0

```
fun consumerProguardFiles(vararg proguardFiles: Any): Any
```

Adds proguard rule files to be included in the published AAR.

This proguard rule file will then be used by any application project that consume the AAR (if proguard is enabled).

This allows AAR to specify shrinking or obfuscation exclude rules.

This is only valid for Library project. This is ignored in Application project.

This method has a return value for legacy reasons.

## Public properties

### aarMetadata

Added in 4.2.0

```
val aarMetadata: AarMetadata
```

Options for configuring AAR metadata.

### consumerProguardFiles

Added in 4.2.0

```
val consumerProguardFiles: MutableList<File>
```

ProGuard rule files to be included in the published AAR.

These proguard rule files will then be used by any application project that consumes the AAR (if ProGuard is enabled).

This allows AAR to specify shrinking or obfuscation exclude rules.

This is only valid for Library project. This is ignored in Application project.

### multiDexEnabled

Added in 4.2.0 Deprecated in 9.6.0-alpha03

```
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.