Stay organized with collections
    
    
      
      Save and categorize content based on your preferences.
    
  
  
    
  
  
  
  
    
    
    
  
  
    
    
    
    ApplicationVariant
    interface ApplicationVariant : GeneratesApk, Variant, HasAndroidTest, HasTestFixtures
    
    Properties for the main Variant of an application.
    Summary
    
      
        
          | Inherited functions | 
        
          |  | 
        
          |  | 
        
          | From class Component
                
                  
                    | Unit | setAsmFramesComputationMode(mode: FramesComputationMode)
                         Sets the frame computation mode that will be applied to the bytecode of the classes
instrumented by ASM visitors registered through transformClassesWith. The default mode is
to copy frames. When setting this multiple times, the mode with the highest enum value will be selected. |  
                    | Unit | transformClassesWith(classVisitorFactoryImplClass: Class<out AsmClassVisitorFactory<ParamT>>, scope: InstrumentationScope, instrumentationParamsConfig: (ParamT) -> Unit)
                         Registers an asm class visitor to instrument the classes defined by the given scope.
An instance of the factory will be instantiated and used to create visitors for each class. Example: androidComponentsExtension.onVariants(selector().all(), {
    transformClassesWith(AsmClassVisitorFactoryImpl.class,
                         InstrumentationScope.Project) { params ->
        params.x = "value"
    }
    setAsmFramesComputationMode(COMPUTE_FRAMES_FOR_INSTRUMENTED_METHODS)
}) |  | 
      
    
    
      
        
          | Properties | 
        
          | abstract Property<String> | Variant's application ID as present in the final manifest file of the APK. | 
        
          | abstract BundleConfig | Variant's information related to the bundle creation configuration. | 
        
          | abstract DependenciesInfo | Specify whether to include SDK dependency information in APKs and Bundles. | 
        
          | abstract List<VariantOutput> | Returns the final list of variant outputs. | 
        
          | abstract SigningConfig | Variant's signingConfig, initialized by the corresponding DSL element. | 
      
    
    
      
        
          | Inherited properties | 
        
          |  | 
        
          |  | 
        
          |  | 
        
          | From class Variant
                
                  
                    | MapProperty<String, BuildConfigField<out Serializable>> | buildConfigFields
                         Variant's BuildConfigField which will be generated in the BuildConfig class. |  
                    | MapProperty<String, Any> | experimentalProperties
                         Additional per variant experimental properties. Initialized from com.android.build.api.dsl.CommonExtension.experimentalProperties |  
                    | ExternalNativeBuild? | externalNativeBuild
                         Variant's cmake ExternalNativeBuild, initialized by merging the product flavor values or
null if no cmake external build is configured for this variant. |  
                    | MapProperty<String, String> | manifestPlaceholders
                         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. |  
                    | Int? | maxSdkVersion
                         Gets the maximum supported SDK Version for this variant. |  
                    | AndroidVersion | minSdkVersion
                         Gets the minimum supported SDK Version for this variant. |  
                    | Provider<String> | namespace
                         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. |  
                    | List<Component> | nestedComponents
                         List of the components nested in this variant, the returned list will contain: Use this list to do operations on all nested components of this variant without having to
manually check whether the variant has each component. Example: androidComponents.onVariants(selector().withName("debug")) {
    // will return unitTests, androidTests, testFixtures for the debug variant (if enabled).
    nestedComponents.forEach { component ->
        component.transformClassesWith(NestedComponentsClassVisitorFactory::class.java,
                                       InstrumentationScope.Project) {}
    }
} |  
                    | ListProperty<RegularFile> | proguardFiles
                         List of proguard configuration files for this variant. The list is initialized from the
corresponding DSL element, and cannot be queried at configuration time. At configuration time,
you can only add new elements to the list. This list will be initialized from com.android.build.api.dsl.VariantDimension#proguardFile
for non test related variants and from
com.android.build.api.dsl.VariantDimension.testProguardFiles for test related variants. |  
                    | AndroidVersion | targetSdkVersion
                         Gets the target SDK Version for this variant. |  
                    | UnitTest? | unitTest
                         Variant's UnitTest, or null if the unit tests for this variant are disabled. |  | 
        
          | From class ComponentIdentity
                
                  
                    | String? | buildType
                         Build type name, might be replaced with access to locked DSL object once ready. |  
                    | String? | flavorName
                         The multi-flavor name of the variant. This does not include the build type. If no flavors are present, this will return null The full name of the variant is queried via name. |  
                    | String | name
                         Component's name. |  
                    | List<Pair<String, String>> | productFlavors
                         List of flavor names, might be replaced with access to locked DSL objects once ready. The order is properly sorted based on the associated dimension order. |  | 
        
          |  | 
        
          |  | 
      
    
    Properties
    
    
      bundleConfig
      abstract val bundleConfig: BundleConfig
      Variant's information related to the bundle creation configuration.
      
     
    
      dependenciesInfo
      abstract val dependenciesInfo: DependenciesInfo
      Specify whether to include SDK dependency information in APKs and Bundles.
     
    
      outputs
      abstract val outputs: List<VariantOutput>
      Returns the final list of variant outputs.
      
     
    
      signingConfig
      abstract val signingConfig: SigningConfig
      Variant's signingConfig, initialized by the corresponding DSL element.
      
        
          
            | Return | 
          
            | Variant's config or null if the variant is not configured for signing. | 
        
      
     
  
  
  
    
  
 
  
    
      
      
    
    
      
    
    
  
       
    
    
      
    
  
  
  Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
  Last updated 2025-02-10 UTC.
  
  
  
    
      [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-02-10 UTC."],[],[]]