VariantBuilder

interface VariantBuilder : ComponentIdentity, ComponentBuilder

Known direct subclasses
ApplicationVariantBuilder

Application specific variant object that contains properties that will determine the variant's build flow.

DynamicFeatureVariantBuilder
LibraryVariantBuilder

VariantBuilder type for library projects

TestVariantBuilder

VariantBuilder type for tests associated with a module.


Variant object that contains properties that must be set during configuration time as it changes the build flow for the variant.

Summary

Public functions

Unit
<T : Any?> registerExtension(type: Class<T?>?, instance: T?)

Registers an extension object to the variant object.

Public properties

Boolean

Set to true if the variant's has any unit tests, false otherwise.

Int?

Gets the maximum supported SDK Version for this variant.

Int?

Gets or sets the minimum supported SDK Version for this variant.

String?

Gets or sets the minimum supported SDK Version for this variant as a Preview codename.

Int

Specifies the bytecode version to be generated.

Int?

Gets or sets the target SDK Version for this variant as a Preview codename.

String?

Gets or sets the target SDK Version for this variant as a Preview codename.

Boolean

Set to true if the variant's has any unit tests, false otherwise.

Public functions

registerExtension

fun <T : Any?> registerExtension(type: Class<T?>?, instance: T?): Unit

Registers an extension object to the variant object. Extension objects can be looked up during the AndroidComponentsExtension.onVariants callbacks by using the Variant.getExtension API.

This is very useful for third party plugins that want to attach some variant specific configuration object to the Android Gradle Plugin variant object and make it available to other plugins.

Parameters
type: Class<T?>?

the registered object type (can be a supertype of instance), this is the type that must be passed to the Variant.getExtension API.

instance: T?

the object to associate to the AGP Variant object.

Public properties

enableUnitTest

val enableUnitTestBoolean

Set to true if the variant's has any unit tests, false otherwise. Value is Boolean#True by default.

maxSdk

val maxSdkInt?

Gets the maximum supported SDK Version for this variant.

minSdk

val minSdkInt?

Gets or sets the minimum supported SDK Version for this variant. Setting this it will override previous calls of minSdk and minSdkPreview setters. Only one of minSdk and minSdkPreview should be set.

Returns
Int?

the minimum supported SDK Version or null if minSdkPreview was used to set it.

minSdkPreview

val minSdkPreviewString?

Gets or sets the minimum supported SDK Version for this variant as a Preview codename. Setting this it will override previous calls of minSdk and minSdkPreview setters. Only one of minSdk and minSdkPreview should be set.

Returns
String?

the minimum supported SDK Version or null if minSdk was used to set it.

renderscriptTargetApi

val renderscriptTargetApiInt

Specifies the bytecode version to be generated. We recommend you set this value to the lowest API level able to provide all the functionality you are using

Returns
Int

the renderscript target api or -1 if not specified.

targetSdk

val targetSdkInt?

Gets or sets the target SDK Version for this variant as a Preview codename. Setting this it will override previous calls of targetSdk and targetSdkPreview setters. Only one of targetSdk and targetSdkPreview should be set.

Returns
Int?

the target SDK Version or null if targetSdkPreview was used to set it.

targetSdkPreview

val targetSdkPreviewString?

Gets or sets the target SDK Version for this variant as a Preview codename. Setting this it will override previous calls of targetSdk and targetSdkPreview setters. Only one of targetSdk and targetSdkPreview should be set.

Returns
String?

the target supported SDK Version or null if targetSdkPreview was used to set it.

unitTestEnabled

val unitTestEnabledBoolean

Set to true if the variant's has any unit tests, false otherwise. Value is Boolean#True by default.