# GeneratesApkBuilder

# GeneratesApkBuilder

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

<br />

```
interface GeneratesApkBuilder
```

<br />

Known direct subclasses  
[ApplicationVariantBuilder](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/ApplicationVariantBuilder),[DynamicFeatureVariantBuilder](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/DynamicFeatureVariantBuilder),[GeneratesTestApkBuilder](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/GeneratesTestApkBuilder),[TestVariantBuilder](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/TestVariantBuilder)  

|---------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [ApplicationVariantBuilder](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/ApplicationVariantBuilder)       | Model for application components that only contains configuration-time properties that impacts the build flow.                                                                      |
| [DynamicFeatureVariantBuilder](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/DynamicFeatureVariantBuilder) | Model for dynamic feature components that only contains configuration-time properties that impacts the build flow.                                                                  |
| [GeneratesTestApkBuilder](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/GeneratesTestApkBuilder)           | Configuration-time properties[ComponentBuilder](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/ComponentBuilder)that produce Test APKs. |
| [TestVariantBuilder](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/TestVariantBuilder)                     | Model for test components that only contains configuration-time properties that impacts the build flow.                                                                             |

Known indirect subclasses  
[AndroidTestBuilder](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/AndroidTestBuilder),[DeviceTestBuilder](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/DeviceTestBuilder)  

|-------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------|
| [AndroidTestBuilder](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/AndroidTestBuilder) |                                                                                   |
| [DeviceTestBuilder](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/DeviceTestBuilder)   | Interface to turn tests on devices,`AndroidTest`being an example of device tests. |

*** ** * ** ***

Configuration-time properties[ComponentBuilder](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/ComponentBuilder)that produce APKs.

## Summary

|                                 ### Public properties                                 |
|---------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)    | [debuggable](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/GeneratesApkBuilder#debuggable()) Sets the APK debuggable flag.                                                     |
| [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)`?` | [enableMultiDex](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/GeneratesApkBuilder#enableMultiDex()) Sets whether multi-dex is enabled for this variant.                       |
| [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`?`         | [targetSdk](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/GeneratesApkBuilder#targetSdk()) Sets the target SDK Version for this variant as an integer API level.               |
| [String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`?`   | [targetSdkPreview](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/GeneratesApkBuilder#targetSdkPreview()) Sets the target SDK Version for this variant as an integer API level. |

## Public properties

### debuggable

Added in 8.10.1  
Deprecated in 8.10.1  

```
var debuggable: Boolean
```

Sets the APK debuggable flag.  

### enableMultiDex

Added in 8.3.1  
Deprecated in 8.3.1  

```
var enableMultiDex: Boolean?
```

Sets whether multi-dex is enabled for this variant.

This can be null, in which case the default value is used.

It is not safe to read the value of this property as other plugins that were applied later can change this value so there is no guarantee you would get the final value. To get the final value, use the[AndroidComponentsExtension.onVariants](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/AndroidComponentsExtension#onVariants(com.android.build.api.variant.VariantSelector,kotlin.Function1))API :  

```gdscript
onVariants { variant ->
  variant.dexing.isMultiDexEnabled
}
```

Note the a[RuntimeException](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/RuntimeException.html)will be thrown at Runtime if a java or groovy code tries to read the property value.  

### targetSdk

Added in 7.4.0  

```
var targetSdk: Int?
```

Sets the target SDK Version for this variant as an integer API level. Setting this will override previous calls of[targetSdk](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/GeneratesApkBuilder#targetSdk())and[targetSdkPreview](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/GeneratesApkBuilder#targetSdkPreview())setters. Only one of[targetSdk](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/GeneratesApkBuilder#targetSdk())and[targetSdkPreview](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/GeneratesApkBuilder#targetSdkPreview())should be set.

It is not safe to read this value. Use[GeneratesApk.targetSdk](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/GeneratesApk#targetSdk())instead.  

### targetSdkPreview

Added in 7.4.0  

```
var targetSdkPreview: String?
```

Sets the target SDK Version for this variant as an integer API level. Setting this will override previous calls of[targetSdk](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/GeneratesApkBuilder#targetSdk())and[targetSdkPreview](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/GeneratesApkBuilder#targetSdkPreview())setters. Only one of[targetSdk](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/GeneratesApkBuilder#targetSdk())and[targetSdkPreview](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/GeneratesApkBuilder#targetSdkPreview())should be set.

It is not safe to read this value. Use[GeneratesApk.targetSdk](https://developer.android.com/reference/tools/gradle-api/9.0/com/android/build/api/variant/GeneratesApk#targetSdk())instead.