# JniLibsPackaging

# JniLibsPackaging

<br />

```
public interface JniLibsPackaging
```

<br />

Known direct subclasses  
[JniLibsApkPackaging](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/JniLibsApkPackaging)  

|--------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------|
| [JniLibsApkPackaging](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/JniLibsApkPackaging) | Defines an APK variant's packaging options for native library (.so) files. |

*** ** * ** ***

Defines a variant's packaging options for native library (.so) files.

## Summary

|                                                                                                                                                                                                          ### Public methods                                                                                                                                                                                                          |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[SetProperty](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/SetProperty.html)`<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)`>` | [getExcludes](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/JniLibsPackaging#getExcludes())`()` The set of excluded patterns.                                                                          |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[SetProperty](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/SetProperty.html)`<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)`>` | [getKeepDebugSymbols](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/JniLibsPackaging#getKeepDebugSymbols())`()` The set of patterns for native libraries that should not be stripped of debug symbols. |
| `abstract @`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[SetProperty](https://docs.gradle.org/current/javadoc/org/gradle/api/provider/SetProperty.html)`<@`[NonNull](https://developer.android.com/reference/tools/gradle-api/8.3/null/androidx/annotation/NonNull)` `[String](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html)`>` | [getPickFirsts](https://developer.android.com/reference/tools/gradle-api/8.3/null/com/android/build/api/variant/JniLibsPackaging#getPickFirsts())`()` The set of patterns for which the first occurrence is packaged in the APK.                         |

## Public methods

### getExcludes

```
abstract @NonNull SetProperty<@NonNull String> getExcludes()
```

The set of excluded patterns. Native libraries matching any of these patterns do not get packaged.

Example usage:`packaging.jniLibs.excludes.add("**`/`exclude.so")`  

### getKeepDebugSymbols

```
abstract @NonNull SetProperty<@NonNull String> getKeepDebugSymbols()
```

The set of patterns for native libraries that should not be stripped of debug symbols.

Example:`packaging.jniLibs.keepDebugSymbols.add("**`/`doNotStrip.so")`  

### getPickFirsts

```
abstract @NonNull SetProperty<@NonNull String> getPickFirsts()
```

The set of patterns for which the first occurrence is packaged in the APK. For each native library APK entry path matching one of these patterns, only the first native library found with that path gets packaged.

Example usage:`packaging.jniLibs.pickFirsts.add("**`/`pickFirst.so")`