Android 12 Developer Preview is here! Try it out, and give us your feedback!

Variant

@Incubating interface Variant : Component
com.android.build.api.variant.Variant

Parent interface for all types of variants.

Summary

Public methods

abstract Unit
addBuildConfigField(key: String, value: Serializable, comment: String?)

Convenience method to add a new Build Config field which value is known at configuration time.

abstract Unit
addResValue(name: String, type: String, value: String, comment: String?)

Adds a ResValue element to the generated resources.

abstract Unit
addResValue(name: String, type: String, value: Provider<String>, comment: String?)

Adds a ResValue element to the generated resources.

abstract T?
getExtension(type: Class<T>)

Returns an extension object registered via the VariantBuilder.registerExtension API or null if none were registered under the passed type.

Inherited functions

Properties

abstract Provider<String>

Variant's application ID as present in the final manifest file of the APK.

abstract MapProperty<String, BuildConfigField<out Serializable>>

Variant's BuildConfigField which will be generated in the BuildConfig class.

abstract ExternalCmake?

Variant's ExternalCmake, initialized by merging the product flavor values or null if no cmake external build is configured for this variant.

abstract ExternalNdkBuild?

Variant's ExternalNdkBuild, initialized by merging the product flavor values or null if no ndk-build external build is configured for this variant.

abstract MapProperty<String, String>

MapProperty of the variant's manifest placeholders.

abstract Provider<String>

The namespace of the generated R and BuildConfig classes.

abstract Packaging

Variant's packagingOptions, initialized by the corresponding global DSL element.

abstract UnitTest?

Variant's UnitTest, or null if the unit tests for this variant are disabled.

Inherited properties

Public methods

addBuildConfigField

abstract fun addBuildConfigField(
    key: String,
    value: Serializable,
    comment: String?
): Unit

Convenience method to add a new Build Config field which value is known at configuration time.

Parameters
key: String the build config field name
value: Serializable the build config field value which type must be Serializable
comment: String? optional comment for the field.

addResValue

abstract fun addResValue(
    name: String,
    type: String,
    value: String,
    comment: String?
): Unit

Adds a ResValue element to the generated resources.

Parameters
name: String the resource name
type: String the resource type like 'string'
value: String the resource value
comment: String? optional comment to be added to the generated resource file for the field.

addResValue

abstract fun addResValue(
    name: String,
    type: String,
    value: Provider<String>,
    comment: String?
): Unit

Adds a ResValue element to the generated resources.

Parameters
name: String the resource name
type: String the resource type like 'string'
value: Provider<String> a Provider for the value
comment: String? optional comment to be added to the generated resource file for the field.

getExtension

abstract fun <T> getExtension(type: Class<T>): T?

Returns an extension object registered via the VariantBuilder.registerExtension API or null if none were registered under the passed type.

Return
the registered object or null.

Properties

applicationId

abstract val applicationId: Provider<String>

Variant's application ID as present in the final manifest file of the APK.

Some type of variants allows this to be writeable but for some it's only read-only.

buildConfigFields

abstract val buildConfigFields: MapProperty<String, BuildConfigField<out Serializable>>

Variant's BuildConfigField which will be generated in the BuildConfig class.

externalCmake

abstract val externalCmake: ExternalCmake?

Variant's ExternalCmake, initialized by merging the product flavor values or null if no cmake external build is configured for this variant.

externalNdkBuild

abstract val externalNdkBuild: ExternalNdkBuild?

Variant's ExternalNdkBuild, initialized by merging the product flavor values or null if no ndk-build external build is configured for this variant.

manifestPlaceholders

abstract val manifestPlaceholders: MapProperty<String, String>

MapProperty of the variant's manifest placeholders.

Placeholders are organized with a key and a value. The value is a String that will be used as is in the merged manifest.

Return
the MapProperty with keys as String

namespace

abstract val namespace: Provider<String>

The namespace of the generated R and BuildConfig classes. Also, the namespace used to resolve any relative class names that are declared in the AndroidManifest.xml.

This value supersedes any value specified by the package attribute in the source AndroidManifest.xml, but doing a 'get' on this property will not retrieve the value specified in the AndroidManifest.xml.

packaging

abstract val packaging: Packaging

Variant's packagingOptions, initialized by the corresponding global DSL element.

unitTest

abstract val unitTest: UnitTest?

Variant's UnitTest, or null if the unit tests for this variant are disabled.