DSL object used to configure product flavors.
Property | Description |
applicationId | The application ID. |
applicationIdSuffix | Application id suffix. |
consumerProguardFiles | ProGuard rule files to be included in the published AAR. |
dimension | Name of the dimension this product flavor belongs to. |
externalNativeBuild | Encapsulates per-variant CMake and ndk-build configurations for your external native build. |
flavorDimension | Deprecated Name of the dimension this product flavor belongs to. Has been replaced by
|
generatedDensities | Deprecated Deprecated equivalent of |
jackOptions | Options for configuring jack. |
javaCompileOptions | Options for configuration Java compilation. |
manifestPlaceholders | The manifest placeholders. |
multiDexEnabled | Whether Multi-Dex is enabled for this variant. |
multiDexKeepFile | Text file that specifies additional classes that will be compiled into the main dex file. |
multiDexKeepProguard | Text file with additional ProGuard rules to be used to determine which classes are compiled into the main dex file. |
ndk | Encapsulates per-variant configurations for the NDK, such as ABI filters. |
proguardFiles | Returns ProGuard configuration files to be used. |
signingConfig | Signing config used by this product flavor. |
testApplicationId | Test application ID. |
testFunctionalTest | See instrumentation. |
testHandleProfiling | See instrumentation. |
testInstrumentationRunner | Test instrumentation runner class name. |
testInstrumentationRunnerArguments | Test instrumentation runner custom arguments.
e.g. |
useJack | Deprecated Replaced by the |
vectorDrawables | Options to configure the build-time support for |
versionCode | Version code. |
versionName | Version name. |
versionNameSuffix | Version name suffix. |
wearAppUnbundled | Returns whether to enable unbundling mode for embedded wear app. If true, this enables the app to transition from an embedded wear app to one distributed by the play store directly. |
Method | Description |
buildConfigField(type, name, value) | Adds a new field to the generated BuildConfig class. |
consumerProguardFile(proguardFile) | Adds a proguard rule file to be included in the published AAR. |
consumerProguardFiles(proguardFiles) | Adds proguard rule files to be included in the published AAR. |
maxSdkVersion(targetSdkVersion) | Sets the maximum SDK version to the given value. |
maxSdkVersion(targetSdkVersion) | Sets the maximum SDK version to the given value. |
minSdkVersion(minSdkVersion) | Sets minimum SDK version. |
minSdkVersion(minSdkVersion) | Sets minimum SDK version. |
proguardFile(proguardFile) | Adds a new ProGuard configuration file. |
proguardFiles(files) | Adds new ProGuard configuration files. |
resConfig(config) | Adds a resource configuration filter. |
resConfigs(config) | Adds several resource configuration filters. |
resConfigs(config) | Adds several resource configuration filters. |
resValue(type, name, value) | Adds a new generated resource. |
setConsumerProguardFiles(proguardFileIterable) | Specifies a proguard rule file to be included in the published AAR. |
setProguardFiles(proguardFileIterable) | Sets the ProGuard configuration files. |
setTestProguardFiles(files) | Specifies proguard rule files to be used when processing test code. |
targetSdkVersion(targetSdkVersion) | Sets the target SDK version to the given value. |
targetSdkVersion(targetSdkVersion) | Sets the target SDK version to the given value. |
testInstrumentationRunnerArgument(key, value) | Adds a custom argument to the test instrumentation runner, e.g: |
testInstrumentationRunnerArguments(args) | Adds custom arguments to the test instrumentation runner, e.g: |
testProguardFile(proguardFile) | Adds a proguard rule file to be used when processing test code. |
testProguardFiles(proguardFiles) | Adds proguard rule files to be used when processing test code. |
Block | Description |
externalNativeBuild | Encapsulates per-variant CMake and ndk-build configurations for your external native build. |
jackOptions | Configure Jack options for this product flavor. |
ndk | Encapsulates per-variant configurations for the NDK, such as ABI filters. |
vectorDrawables | Configures |
String
applicationIdSuffix
Application id suffix.
This is appended to the "base" application id when calculating the final application id for a variant.
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.
String
dimension
Name of the dimension this product flavor belongs to.
ExternalNativeBuildOptions
externalNativeBuild
Encapsulates per-variant CMake and ndk-build configurations for your external native build.
To learn more, see Add C and C++ Code to Your Project.
String
flavorDimension
Note: This property is deprecated and will be removed in a future version of the plugin.
Name of the dimension this product flavor belongs to. Has been replaced by
dimension
.
Note: This property is deprecated and will be removed in a future version of the plugin.
Deprecated equivalent of vectorDrawablesOptions.generatedDensities
.
JavaCompileOptions
javaCompileOptions
Options for configuration Java compilation.
The manifest placeholders.
Boolean
multiDexEnabled
Whether Multi-Dex is enabled for this variant.
File
multiDexKeepFile
Text file that specifies additional classes that will be compiled into the main dex file.
Classes specified in the file are appended to the main dex classes computed using
aapt
.
If set, the file should contain one class per line, in the following format:
com/example/MyClass.class
File
multiDexKeepProguard
Text file with additional ProGuard rules to be used to determine which classes are compiled into the main dex file.
If set, rules from this file are used in combination with the default rules used by the build system.
NdkOptions
ndk
Encapsulates per-variant configurations for the NDK, such as ABI filters.
Returns ProGuard configuration files to be used.
There are 2 default rules files
- proguard-android.txt
- proguard-android-optimize.txt
They are located in the SDK. Using getDefaultProguardFile(String filename)
will return the
full path to the files. They are identical except for enabling optimizations.
See similarly named methods to specify the files.
SigningConfig
signingConfig
Signing config used by this product flavor.
Boolean
testFunctionalTest
See instrumentation.
Boolean
testHandleProfiling
See instrumentation.
String
testInstrumentationRunner
Test instrumentation runner class name.
This is a fully qualified class name of the runner, e.g.
android.test.InstrumentationTestRunner
See instrumentation.
Test instrumentation runner custom arguments.
e.g. [key: "value"]
will give
adb shell am instrument -w -e key value com.example
...".
See instrumentation.
Test runner arguments can also be specified from the command line:
./gradlew connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.size=medium ./gradlew connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.foo=bar
Boolean
useJack
Note: This property is deprecated and will be removed in a future version of the plugin.
Replaced by the jackOptions.enabled
property.
VectorDrawablesOptions
vectorDrawables
Options to configure the build-time support for vector
drawables.
String
versionNameSuffix
Version name suffix.
This is appended to the "base" version name when calculating the final version name for a variant.
Boolean
wearAppUnbundled
Returns whether to enable unbundling mode for embedded wear app. If true, this enables the app to transition from an embedded wear app to one distributed by the play store directly.
Adds a new field to the generated BuildConfig class.
The field is generated as: <type> <name> = <value>;
This means each of these must have valid Java content. If the type is a String, then the value should include quotes.
void
consumerProguardFile
(Object
proguardFile)
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.
void
consumerProguardFiles
(Object
...
proguardFiles)
Object
...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.
Sets the maximum SDK version to the given value.
Sets the maximum SDK version to the given value.
void
minSdkVersion
(String
minSdkVersion)
Sets minimum SDK version.
void
proguardFile
(Object
proguardFile)
Adds a new ProGuard configuration file.
proguardFile getDefaultProguardFile('proguard-android.txt')
There are 2 default rules files
- proguard-android.txt
- proguard-android-optimize.txt
They are located in the SDK. Using getDefaultProguardFile(String filename)
will return the
full path to the files. They are identical except for enabling optimizations.
void
proguardFiles
(Object
...
files)
Object
...Adds new ProGuard configuration files.
There are 2 default rules files
- proguard-android.txt
- proguard-android-optimize.txt
They are located in the SDK. Using getDefaultProguardFile(String filename)
will return the
full path to the files. They are identical except for enabling optimizations.
void
resConfig
(String
config)
Adds a resource configuration filter.
If a qualifier value is passed, then all other resources using a qualifier of the same type but of different value will be ignored from the final packaging of the APK.
For instance, specifying 'hdpi', will ignore all resources using mdpi, xhdpi, etc...
To package only the localization languages your app includes as string resources, specify 'auto'. For example, if your app includes string resources for 'values-en' and 'values-fr', and its dependencies provide 'values-en' and 'values-ja', Gradle packages only the 'values-en' and 'values-fr' resources from the app and its dependencies. Gradle does not package 'values-ja' resources in the final APK.
void
resConfigs
(String
...
config)
String
...Adds several resource configuration filters.
If a qualifier value is passed, then all other resources using a qualifier of the same type but of different value will be ignored from the final packaging of the APK.
For instance, specifying 'hdpi', will ignore all resources using mdpi, xhdpi, etc...
To package only the localization languages your app includes as string resources, specify 'auto'. For example, if your app includes string resources for 'values-en' and 'values-fr', and its dependencies provide 'values-en' and 'values-ja', Gradle packages only the 'values-en' and 'values-fr' resources from the app and its dependencies. Gradle does not package 'values-ja' resources in the final APK.
void
resConfigs
(Collection
<String
>
config)
Collection
<String
>Adds several resource configuration filters.
If a qualifier value is passed, then all other resources using a qualifier of the same type but of different value will be ignored from the final packaging of the APK.
For instance, specifying 'hdpi', will ignore all resources using mdpi, xhdpi, etc...
To package only the localization languages your app includes as string resources, specify 'auto'. For example, if your app includes string resources for 'values-en' and 'values-fr', and its dependencies provide 'values-en' and 'values-ja', Gradle packages only the 'values-en' and 'values-fr' resources from the app and its dependencies. Gradle does not package 'values-ja' resources in the final APK.
Adds a new generated resource.
This is equivalent to specifying a resource in res/values.
See Resource Types.
void
setConsumerProguardFiles
(Iterable
<?>
proguardFileIterable)
Iterable
<?>Specifies 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.
void
setProguardFiles
(Iterable
<?>
proguardFileIterable)
Iterable
<?>Sets the ProGuard configuration files.
There are 2 default rules files
- proguard-android.txt
- proguard-android-optimize.txt
They are located in the SDK. Using getDefaultProguardFile(String filename)
will return the
full path to the files. They are identical except for enabling optimizations.
void
setTestProguardFiles
(Iterable
<?>
files)
Iterable
<?>Specifies proguard rule files to be used when processing test code.
Test code needs to be processed to apply the same obfuscation as was done to main code.
Sets the target SDK version to the given value.
void
targetSdkVersion
(String
targetSdkVersion)
Sets the target SDK version to the given value.
Adds a custom argument to the test instrumentation runner, e.g:
testInstrumentationRunnerArgument "size", "medium"
Test runner arguments can also be specified from the command line:
./gradlew connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.size=medium ./gradlew connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.foo=bar
Adds custom arguments to the test instrumentation runner, e.g:
testInstrumentationRunnerArguments(size: "medium", foo: "bar")
Test runner arguments can also be specified from the command line:
./gradlew connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.size=medium ./gradlew connectedAndroidTest -Pandroid.testInstrumentationRunnerArguments.foo=bar
void
testProguardFile
(Object
proguardFile)
Adds a proguard rule file to be used when processing test code.
Test code needs to be processed to apply the same obfuscation as was done to main code.
void
testProguardFiles
(Object
...
proguardFiles)
Object
...Adds proguard rule files to be used when processing test code.
Test code needs to be processed to apply the same obfuscation as was done to main code.
Encapsulates per-variant CMake and ndk-build configurations for your external native build.
To learn more, see Add C and C++ Code to Your Project.
- Delegates to:
ExternalNativeBuildOptions
fromexternalNativeBuild
Configure Jack options for this product flavor.
See Jack and Jill
- Delegates to:
JackOptions
fromjackOptions
Encapsulates per-variant configurations for the NDK, such as ABI filters.
- Delegates to:
NdkOptions
fromndk
Configures VectorDrawablesOptions
.
- Delegates to:
VectorDrawablesOptions
fromvectorDrawables