# LibraryDeclarativeDefinition

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


```
@Incubating
interface LibraryDeclarativeDefinition : CommonDeclarativeDefinition, TestedDeclarativeDefinition, Definition
```

<br />

*** ** * ** ***

A declarative definition for the Android Library Gradle Plugin.

This interface contains all properties and functions from `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryExtension` and its parent interfaces.

## Summary

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` | `@https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html https://docs.gradle.org/current/javadoc/org/gradle/api/NamedDomainObjectContainer.html<https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/DeclarativeLibraryBuildType>.https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDeclarativeDefinition#(org.gradle.api.NamedDomainObjectContainer).debug(kotlin.Function1)( action: https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/DeclarativeLibraryBuildType.() -> https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html )` |
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html` | `@https://docs.gradle.org/current/javadoc/org/gradle/api/Incubating.html https://docs.gradle.org/current/javadoc/org/gradle/api/NamedDomainObjectContainer.html<https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/DeclarativeLibraryBuildType>.https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDeclarativeDefinition#(org.gradle.api.NamedDomainObjectContainer).release(kotlin.Function1)( action: https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/DeclarativeLibraryBuildType.() -> https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html )` |

| ### Public properties |
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-collection/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/dsl/LibraryDeclarativeDefinition#aidlPackagedList()` Aidl files to package in the aar. |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryAndroidResources` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDeclarativeDefinition#androidResources()` Specifies options related to the processing of Android Resources. |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryBuildFeatures` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDeclarativeDefinition#buildFeatures()` A list of build features that can be enabled or disabled on the Android Project. |
| `https://docs.gradle.org/current/javadoc/org/gradle/api/NamedDomainObjectContainer.html<https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/DeclarativeLibraryBuildType>` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDeclarativeDefinition#buildTypes()` Encapsulates all build type configurations for this project. |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/CompileOptions` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDeclarativeDefinition#compileOptions()` Specifies Java compiler options. |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/ComposeOptions` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDeclarativeDefinition#composeOptions()` |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/DataBinding` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDeclarativeDefinition#dataBinding()` Specifies options for the Data Binding Library. |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDefaultConfig` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDeclarativeDefinition#defaultConfig()` Specifies defaults for variant properties. |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/DependenciesExtension` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDeclarativeDefinition#dependencies()` |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/ExternalNativeBuild` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDeclarativeDefinition#externalNativeBuild()` Specifies options for external native build using CMake or ndk-build. |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryInstallation` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDeclarativeDefinition#installation()` Specifies options for the Android Debug Bridge (ADB). |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/Lint` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDeclarativeDefinition#lint()` Specifies options for the lint tool. |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/Packaging` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDeclarativeDefinition#packaging()` |
| `https://docs.gradle.org/current/javadoc/org/gradle/api/NamedDomainObjectContainer.html<https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/Prefab>` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDeclarativeDefinition#prefab()` container of Prefab options |
| `https://docs.gradle.org/current/javadoc/org/gradle/api/NamedDomainObjectContainer.html<https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/DeclarativeLibraryFlavor>` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDeclarativeDefinition#productFlavors()` Encapsulates all product flavors configurations for this project. |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryPublishing` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDeclarativeDefinition#publishing()` Customizes publishing build variant artifacts from library module to a Maven repository. |
| `https://docs.gradle.org/current/javadoc/org/gradle/api/NamedDomainObjectContainer.html<https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/ApkSigningConfig>` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDeclarativeDefinition#signingConfigs()` Encapsulates signing configurations. |
| `https://docs.gradle.org/current/javadoc/org/gradle/api/NamedDomainObjectContainer.html<https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/AndroidLibrarySourceSet>` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDeclarativeDefinition#sourceSets()` Encapsulates source set configurations for all variants. |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/Splits` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDeclarativeDefinition#splits()` Specifies configurations for building multiple APKs or APK splits. |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/TestCoverage` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDeclarativeDefinition#testCoverage()` Configure the gathering of code-coverage from tests. |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/TestOptions` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDeclarativeDefinition#testOptions()` Specifies options for how the Android plugin should run local and instrumented tests. |
| `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/ViewBinding` | `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/LibraryDeclarativeDefinition#viewBinding()` Specifies options for the View Binding Library. |

### Inherited functions

From [com.android.build.api.dsl.CommonDeclarativeDefinition](https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/CommonDeclarativeDefinition) `https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/io/File.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/dsl/CommonDeclarativeDefinition#getDefaultProguardFile(kotlin.String)(name: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)` `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/dsl/CommonDeclarativeDefinition#useLibrary(kotlin.String)(name: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`

Includes the specified library to the classpath.
`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/dsl/CommonDeclarativeDefinition#useLibrary(kotlin.String,kotlin.Boolean)(name: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html, required: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)`

### Inherited properties

From [com.android.build.api.dsl.CommonDeclarativeDefinition](https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/CommonDeclarativeDefinition) `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/dsl/CommonDeclarativeDefinition#buildToolsVersion()`

Specifies the version of the SDK Build Tools to use.
`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/dsl/CommonDeclarativeDefinition#compileSdk()`

Specifies the API level to compile your project against.
`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/dsl/CommonDeclarativeDefinition#enableKotlin()`

Enables the compilation of Kotlin sources.
`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.4/com/android/build/api/dsl/CommonDeclarativeDefinition#experimentalProperties()`

Additional per module experimental properties.
`https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-list/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/dsl/CommonDeclarativeDefinition#flavorDimensions()`

Specifies the names of product flavor dimensions for this project.
`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/dsl/CommonDeclarativeDefinition#namespace()`

The namespace of the generated R and BuildConfig classes.
`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/dsl/CommonDeclarativeDefinition#ndkPath()`

Requires the specified path to NDK be used.
`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/dsl/CommonDeclarativeDefinition#ndkVersion()`

Requires the specified NDK version to be used.
`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/dsl/CommonDeclarativeDefinition#resourcePrefix()`

Specifies this project's resource prefix to Android Studio for editor features.
From [com.android.build.api.dsl.TestedDeclarativeDefinition](https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/TestedDeclarativeDefinition) `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/dsl/TestedDeclarativeDefinition#testBuildType()`

Specifies the build type that the plugin should use to test the module.
`https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/TestFixtures` `https://developer.android.com/reference/tools/gradle-api/9.4/com/android/build/api/dsl/TestedDeclarativeDefinition#testFixtures()`

Options to configure the test fixtures.
`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/dsl/TestedDeclarativeDefinition#testNamespace()`

The namespace used by the android test and unit test components.

## Public functions

### debug

Added in 9.4.1

```
@Incubating
fun NamedDomainObjectContainer<DeclarativeLibraryBuildType>.debug(
    action: DeclarativeLibraryBuildType.() -> Unit
): Unit
```

### release

Added in 9.4.1

```
@Incubating
fun NamedDomainObjectContainer<DeclarativeLibraryBuildType>.release(
    action: DeclarativeLibraryBuildType.() -> Unit
): Unit
```

## Public properties

### aidlPackagedList

Added in 9.4.1

```
val aidlPackagedList: MutableCollection<String>?
```

Aidl files to package in the aar.

### androidResources

Added in 9.4.1

```
val androidResources: LibraryAndroidResources
```

Specifies options related to the processing of Android Resources.

### buildFeatures

Added in 9.4.1

```
val buildFeatures: LibraryBuildFeatures
```

A list of build features that can be enabled or disabled on the Android Project.

### buildTypes

Added in 9.4.1

```
val buildTypes: NamedDomainObjectContainer<DeclarativeLibraryBuildType>
```

Encapsulates all build type configurations for this project.

### compileOptions

Added in 9.4.1

```
val compileOptions: CompileOptions
```

Specifies Java compiler options.

### composeOptions

Added in 9.4.1

```
val composeOptions: ComposeOptions
```

### dataBinding

Added in 9.4.1

```
val dataBinding: DataBinding
```

Specifies options for the Data Binding Library.

### defaultConfig

Added in 9.4.1

```
val defaultConfig: LibraryDefaultConfig
```

Specifies defaults for variant properties.

### dependencies

Added in 9.4.1

```
val dependencies: DependenciesExtension
```

### externalNativeBuild

Added in 9.4.1

```
val externalNativeBuild: ExternalNativeBuild
```

Specifies options for external native build using CMake or ndk-build.

### installation

Added in 9.4.1

```
val installation: LibraryInstallation
```

Specifies options for the Android Debug Bridge (ADB).

### lint

Added in 9.4.1

```
val lint: Lint
```

Specifies options for the lint tool.

### packaging

Added in 9.4.1

```
val packaging: Packaging
```

### prefab

Added in 9.4.1

```
val prefab: NamedDomainObjectContainer<Prefab>
```

container of Prefab options

### productFlavors

Added in 9.4.1

```
val productFlavors: NamedDomainObjectContainer<DeclarativeLibraryFlavor>
```

Encapsulates all product flavors configurations for this project.

### publishing

Added in 9.4.1

```
val publishing: LibraryPublishing
```

Customizes publishing build variant artifacts from library module to a Maven repository.

### signingConfigs

Added in 9.4.1

```
val signingConfigs: NamedDomainObjectContainer<ApkSigningConfig>
```

Encapsulates signing configurations.

### sourceSets

Added in 9.4.1

```
val sourceSets: NamedDomainObjectContainer<AndroidLibrarySourceSet>
```

Encapsulates source set configurations for all variants.

### splits

Added in 9.4.1

```
val splits: Splits
```

Specifies configurations for building multiple APKs or APK splits.

### testCoverage

Added in 9.4.1

```
val testCoverage: TestCoverage
```

Configure the gathering of code-coverage from tests.

### testOptions

Added in 9.4.1

```
val testOptions: TestOptions
```

Specifies options for how the Android plugin should run local and instrumented tests.

### viewBinding

Added in 9.4.1

```
val viewBinding: ViewBinding
```

Specifies options for the View Binding Library.