# INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries

- **ID:** `android/install-apk-failed-incompatible`
- **Domain:** android
- **Category:** install_error
- **Error Code:** `INSTALL_FAILED_NO_MATCHING_ABIS`
- **Verification:** ai_generated
- **Fix Rate:** 88%

## Root Cause

The APK does not contain native libraries for the device's CPU architecture (e.g., missing arm64-v8a when device is 64-bit).

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| Android 5.0+ | active | — | — |
| AGP 7.0+ | active | — | — |
| Gradle 7.0+ | active | — | — |

## Workarounds

1. **Add splits block to build.gradle to generate APKs per ABI: splits { abi { enable true reset() include 'arm64-v8a', 'armeabi-v7a', 'x86_64' universalApk false } }** (90% success)
   ```
   Add splits block to build.gradle to generate APKs per ABI: splits { abi { enable true reset() include 'arm64-v8a', 'armeabi-v7a', 'x86_64' universalApk false } }
   ```
2. **Ensure NDK is installed and native libraries are built for all target ABIs via CMake or ndk-build** (85% success)
   ```
   Ensure NDK is installed and native libraries are built for all target ABIs via CMake or ndk-build
   ```
3. **Use a universal APK (no ABI split) by removing abiFilters and setting universalApk true** (80% success)
   ```
   Use a universal APK (no ABI split) by removing abiFilters and setting universalApk true
   ```

## Dead Ends

- **** — This prevents extraction but does not add missing ABIs; app still won't install if native libs are absent. (60% fail)
- **** — If the native libraries are not built for those ABIs, the APK will still lack them. (50% fail)
- **** — The issue is not build cache but missing native libraries for the target ABI. (80% fail)
