You downloaded an .xapk, .apkm or .apks file, ran adb install on it, and got an error. That's expected — these aren't ordinary APKs. Here's what they actually are and exactly how to install one from a Windows PC, by command line or in a single drag-and-drop.
Quick answer
An XAPK is a ZIP of several APKs. Unzip it, then run adb install-multiple base.apk config.arm64_v8a.apk config.en.apk — never adb install on the base alone. If there's an .obb file, push it to /sdcard/Android/obb/<package>/. A split-aware GUI like Andora does all of this from one drag-and-drop.
Skip the unzip-and-multi-install dance
Andora detects XAPK, APKM and .apks bundles, installs every split, and pushes the OBB data automatically — drag the file in and it's done. Free download for Windows 10 & 11.
Modern apps ship to the Play Store as an Android App Bundle (AAB), and Google generates a custom set of APKs per device from it. When a third-party mirror re-packages that app for download, it can't ship an AAB — so it bundles the pieces into a single file:
XAPK — the most common format; a ZIP containing a base APK, split APKs, and any OBB data.
.apks — the output of Google's own bundletool; a ZIP of split APKs.
APKM — APKMirror's bundle format; same idea, ZIP-based.
Inside, you'll find a base.apk plus split configs: one per CPU architecture (config.arm64_v8a.apk), screen density (config.xxhdpi.apk), and language (config.en.apk). Android needs the base and the matching splits installed together as one app.
Why adb install file.xapk fails
adb install takes exactly one APK. Point it at an XAPK and it either rejects the file outright or installs only a base it can't run, throwing INSTALL_FAILED_INVALID_APK or INSTALL_FAILED_MISSING_SPLIT. The fix is to install every split in a single atomic operation with adb install-multiple — that's the command built for split APKs.
# 1. Rename the bundle to .zip and extract it
ren game.xapk game.zip
# (extract game.zip — it contains base.apk + config.*.apk + maybe an .obb)
# 2. Install the base and the splits that match your phone, together
adb install-multiple base.apk config.arm64_v8a.apk config.en.apk config.xxhdpi.apk
# Success → "Success" and the app appears on the phone
Keep only the splits your device needs: the arm64_v8a architecture split (almost all phones since ~2019), your language, and a density near your screen. Including a wrong-architecture split triggers INSTALL_FAILED_NO_MATCHING_ABIS. If you're unsure, installing every split usually works too — Android ignores ones it doesn't need.
Method 2 — handle the OBB data (games)
Large games keep their assets in an OBB file alongside the APKs. adb install-multiple doesn't place it for you — push it manually after installing:
The folder name must be the app's exact package ID, and the .obb filename must stay unchanged — the game looks for it by that path. If the folder doesn't exist yet, adb push creates it.
Method 3 — drag-and-drop (no unzipping)
Doing this by hand is fiddly, and one wrong split means starting over. A split-aware installer reads the bundle, picks the right configs for the connected device, runs the multi-install, and pushes any OBB — all from dropping the file onto the window. That's how Andora handles XAPK, APKM and .apks files, with no rename, no extract, and no command line.
Common errors and fixes
INSTALL_FAILED_INVALID_APK / MISSING_SPLIT — you installed the base alone. Re-run with install-multiple including the config splits.
INSTALL_FAILED_NO_MATCHING_ABIS — a CPU-architecture split doesn't match the phone. Use the arm64_v8a split and drop the others.
INSTALL_FAILED_VERSION_DOWNGRADE — a newer build is already installed. Uninstall it first, or install a matching/newer version.
Signature mismatch (INSTALL_FAILED_UPDATE_INCOMPATIBLE) — the bundle is signed with a different key than the installed app. You can't sideload over a Play Store install; uninstall the existing app first.
Game opens then re-downloads data — the OBB is missing or in the wrong folder. Re-check the /sdcard/Android/obb/<package>/ path and filename.
Why does adb install fail on an XAPK file? Because adb install only accepts a single APK, and an XAPK is a ZIP of a base APK plus split configs (and sometimes OBB data). Install all the splits together with adb install-multiple, or use a tool that unpacks the bundle for you.
What's the difference between an APK and an XAPK? A plain APK is one self-contained installer. An XAPK bundles a base APK with split APKs for specific architectures, densities and languages, plus any OBB assets — the pieces the Play Store would assemble from an App Bundle.
How do I install a .apks or APKM file from my PC? The same way as XAPK: unzip, then adb install-multiple the base and its splits. A split-aware GUI does the unpacking, multi-install and OBB push in one step.
Where do OBB files go? Push them to /sdcard/Android/obb/<package-name>/, keeping the original filename so the app can find its assets.
One drag-and-drop for any bundle
Andora installs XAPK, APKM, .apks and plain APK files, pushes OBB data, sets up wireless ADB, and fixes the connection errors that stop installs — all in a clean Windows GUI.