# PackagingOptions

# PackagingOptions

```
@Incubating interface PackagingOptions
```

|--------------------------------------------------------------------------------------------------------------------------------------------------------|
| [com.android.build.api.dsl.PackagingOptions](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/dsl/PackagingOptions#) |

## Summary

|                                                                                                                                                                        ### Public methods                                                                                                                                                                         ||
|--------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| abstract[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [doNotStrip](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/dsl/PackagingOptions#doNotStrip(kotlin.String))`(`pattern:` `[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`)` Adds a doNotStrip pattern. |
| abstract[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [exclude](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/dsl/PackagingOptions#exclude(kotlin.String))`(`pattern:` `[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`)` Adds an excluded pattern.        |
| abstract[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [merge](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/dsl/PackagingOptions#merge(kotlin.String))`(`pattern:` `[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`)` Adds a merge pattern.                |
| abstract[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) | [pickFirst](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/dsl/PackagingOptions#pickFirst(kotlin.String))`(`pattern:` `[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`)` Adds a first-pick pattern.   |

|                                                                                                                                                                                                                     ### Properties                                                                                                                                                                                                                      ||
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| abstract[MutableSet](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html)\<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)\> | [doNotStrip](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/dsl/PackagingOptions#doNotStrip:kotlin.collections.MutableSet) The list of patterns for native library that should not be stripped of debug symbols. |
| abstract[MutableSet](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html)\<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)\> | [excludes](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/dsl/PackagingOptions#excludes:kotlin.collections.MutableSet) The list of excluded paths.                                                               |
| abstract[MutableSet](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html)\<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)\> | [merges](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/dsl/PackagingOptions#merges:kotlin.collections.MutableSet) The list of patterns where all occurrences are concatenated and packaged in the APK.          |
| abstract[MutableSet](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-set/index.html)\<[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)\> | [pickFirsts](https://developer.android.com/reference/tools/gradle-api/4.1/com/android/build/api/dsl/PackagingOptions#pickFirsts:kotlin.collections.MutableSet) The list of patterns where the first occurrence is packaged in the APK.               |

## Public methods

### doNotStrip

```
abstract fun doNotStrip(pattern: String): Unit
```

Adds a doNotStrip pattern.

|                                                          Parameters                                                           ||
|------------------------------------------------------------------------------------------|-------------------------------------|
| pattern:[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) | the pattern, as packaged in the APK |

### exclude

```
abstract fun exclude(pattern: String): Unit
```

Adds an excluded pattern.

|                                              Parameters                                               ||
|------------------------------------------------------------------------------------------|-------------|
| pattern:[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) | the pattern |

### merge

```
abstract fun merge(pattern: String): Unit
```

Adds a merge pattern.

|                                                          Parameters                                                           ||
|------------------------------------------------------------------------------------------|-------------------------------------|
| pattern:[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) | the pattern, as packaged in the APK |

### pickFirst

```
abstract fun pickFirst(pattern: String): Unit
```

Adds a first-pick pattern.

|                                                 Parameters                                                 ||
|------------------------------------------------------------------------------------------|------------------|
| pattern:[String](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) | the path to add. |

## Properties

### doNotStrip

```
abstract val doNotStrip: MutableSet<String>
```

The list of patterns for native library that should not be stripped of debug symbols.

Example:`packagingOptions.doNotStrip "*`/`armeabi-v7a/libhello-jni.so"`  

### excludes

```
abstract val excludes: MutableSet<String>
```

The list of excluded paths.  

### merges

```
abstract val merges: MutableSet<String>
```

The list of patterns where all occurrences are concatenated and packaged in the APK.  

### pickFirsts

```
abstract val pickFirsts: MutableSet<String>
```

The list of patterns where the first occurrence is packaged in the APK. First pick patterns do get packaged in the APK, but only the first occurrence found gets packaged.