FileCobra Logo FileCobra

Troubleshooting

How to Install an XAPK on Android: The Three Routes That Work

By · Updated 2026-08-31 · 7 min read · 1477 words

Short answer

An XAPK is a ZIP archive holding a base APK plus split APKs, so Android's built-in installer cannot open it. Use a split-APK installer app, or rename the file to a .zip and install the extracted parts together in one session. Budget roughly 2.5 times the download size in free storage.

How to Install XAPK and Split APK Package Architecture on Android Devices
How to Install XAPK and Split APK Package Architecture on Android Devices

You downloaded an XAPK, tapped it, and nothing happened. No error, no dialog, no progress bar — nothing.

That is the correct behaviour. An XAPK is not an app package; it is a ZIP archive containing several app packages, and Android's installer has no idea what to do with it. There is nothing to fix on your device.

What you need is a way to hand Android all the pieces at once. There are three, and one of them works on any phone without special tools.

What is actually inside an XAPK

Google's Android App Bundle format lets a developer upload one build and have the store deliver only the parts a specific device needs. Instead of one APK containing every CPU architecture, every screen density and forty languages, the device gets a base package plus a few small split APKs tailored to it.

That is a real improvement when the store does the assembling. It becomes a problem the moment you want the app as a file, because there is no longer a single file to download. The XAPK format is the workaround: zip the base and its splits together, sometimes with an OBB asset pack, and hand you the archive.

Open one with a file manager such as Solid Explorer and you will typically see:

  • base.apk — the app itself
  • split_config.arm64_v8a.apk — native code for your CPU
  • split_config.xxhdpi.apk — images for your screen density
  • split_config.en.apk and friends — language resources
  • optionally a .obb file — large game or media assets

All of them are signed by the same developer key and stamped with the same version code. Android will accept them as a set or reject them entirely. It will not accept a partial set, and it will not accept splits from two different downloads mixed together.

Twelve apps in this catalogue ship this way: Tasker, Solid Explorer, Shazam Encore, FaceApp, MX Player, KineMaster, Snapseed, VSCO, VivaCut, PhotoRoom, Remini and VN Video Editor. Each page shows its current download size.

Before you start: check your free space

This is the step everyone skips and it is the most common reason a correctly-performed install still fails.

An XAPK install briefly needs three things on disk at once: the archive you downloaded, the split APKs extracted out of it, and the installed application after Android has generated optimised code for it. That is why the storage requirement is so much larger than the download.

Take the download size, multiply by two and a half, and confirm you have that much free before you begin. That multiple is a rule of thumb rather than a measurement — the real figure depends on how much of the archive is compressed assets and how much native code Android has to optimise — but it is the right side to err on. A phone with 400 MB free will not install a 270 MB bundle by any of the methods below, and the error it gives you will not mention storage.

> [!NOTE]

> Free space on Android is not the same as space reported by your gallery. Check Settings → Storage for the real figure, and remember that Android reserves some of what it shows you.

Route 1 — A split-APK installer app (easiest)

The standard answer, and the one to try first.

A split-APK installer opens the archive, extracts the parts, and submits them to Android as a single install session — the same mechanism the Play Store uses. The best-known are SAI (Split APKs Installer) and APKMirror Installer, both free.

  1. Install the split-APK installer from a source you trust.
  2. Grant it "Install unknown apps" — Settings → Apps → the installer → Install unknown apps. On Android 8 and later this permission is per source app, so granting it to your browser does nothing for the installer.
  3. Open the installer, point it at your .xapk, .apks or .apkm file, and confirm.
  4. If the archive contains an OBB, let the installer place it. Do not do this part by hand — see the OBB section below.

How to tell it worked: the app appears in your launcher and opens without missing text or blank images. If text is missing, a language or density split did not install and you should uninstall and retry rather than live with it.

Route 2 — Rename to .zip and install the parts yourself

Useful when you cannot or will not install another app, and when you want to see what you are installing.

  1. Rename whatever.xapk to whatever.zip.
  2. Extract it with any file manager or archive tool.
  3. You now have base.apk plus several split_config.*.apk files.

Here is the part that matters: you cannot install these one at a time by tapping them. Tapping base.apk installs an incomplete app; tapping a split afterwards fails with a signature or version error, because a split cannot be installed as a standalone package. Android requires them submitted as one session.

Some file managers can do this. Most cannot. If yours cannot, use Route 1 or Route 3.

This route is still worth performing for inspection alone. Extracting the archive tells you which architectures it contains, and if you are on an older armeabi-v7a device and the bundle only carries arm64_v8a, you have found your problem before you wasted twenty minutes on it.

Route 3 — ADB from a computer (most reliable)

If you have a PC and a cable, this is the method that gives you a real error message instead of a shrug.

  1. Enable Developer options, then USB debugging, on the phone.
  2. Extract the XAPK on the computer as in Route 2.
  3. Run adb install-multiple base.apk split_config.arm64_v8a.apk split_config.xxhdpi.apk split_config.en.apk — listing every APK from the archive.

install-multiple is the command that exists precisely for this. It opens an install session, streams all the packages into it, and commits them together.

The real advantage is diagnostic. When it fails you get the actual reason: INSTALL_FAILED_INSUFFICIENT_STORAGE, INSTALL_FAILED_NO_MATCHING_ABIS, INSTALL_FAILED_VERSION_DOWNGRADE, INSTALL_FAILED_UPDATE_INCOMPATIBLE. Every one of those points straight at a fix, which is more than the on-device experience will ever give you.

The OBB problem on modern Android

If your XAPK contains a .obb file, it has to end up at Android/obb/<package.name>/ on internal storage.

On Android 10 and earlier you could put it there with a file manager. From Android 11 onward, scoped storage restricts write access to Android/obb/, and a general-purpose file manager usually cannot create that directory or write into it. Attempts appear to succeed and quietly do nothing.

This is why manual OBB placement is now the least reliable step in the whole process, and why Route 1 is the recommendation: a split-APK installer holds the access needed to place the OBB correctly. If the app launches and then complains about missing data files, this is what happened.

When it still fails

SymptomCauseFix
Nothing happens on tapXAPK given to the stock installerUse Route 1
Fails partway throughNot enough free spaceFree 2.5× the download size
"App not installed", instantlyExisting copy signed with a different keyUninstall the old copy fully
App installs, then crashes on launchOnly base.apk was installedInstall all splits in one session
Missing text or blank imagesA language or density split is absentReinstall the complete set
Complains about missing dataOBB not placedLet a split-APK installer do it
NO_MATCHING_ABISBundle lacks your CPU architectureFind a build for your ABI
Install prompt never appears"Install unknown apps" not granted to that appGrant it per source

For the wider set of install failures that are not XAPK-specific — signature mismatches, minSdkVersion floors, leftover registrations under a work profile — the full diagnostic tree is in our guide to fixing "App not installed" on Android.

One thing worth doing first

An XAPK is a repackaged App Bundle, which means the store's distribution chain is no longer vouching for it. What remains is the developer's signature on the splits themselves and whatever trust you place in where you downloaded it.

So before you install: check the publisher, check the version against the developer's own release notes, and check the file's SHA-256 hash if a hash is published. Our guide to verifying a SHA-256 checksum covers how, including the awkward case of doing it for a file that is already on your phone.

It takes two minutes and it is the only step in this article that protects you rather than just getting the app installed.

🛡️ How this guide was sourced

Every app named here resolves to a page in the FileCobra catalogue — the build fails if one does not. Versions, package sizes and system requirements are read from that catalogue rather than written by hand. Where our ingestion worker has fetched a release itself, it records a SHA-256 of the exact file we serve and publishes it on the app’s page. We do not run an antivirus lab: where a VirusTotal report exists we link it, and where none exists we say so rather than imply one.

RA

Rehman Ahmad

VERIFIED AUTHOR

Chief Technology Officer & Lead Systems Auditor at FileCobra

Rehman specializes in Android operating system internals, cryptographic integrity verification, reverse engineering APK packaging architectures, and high-performance audio/video DSP pipelines. He directs the security verification and release ingestion infrastructure across FileCobra.

rehmanahmad.pro ↗ · GitHub ↗ · X / Twitter ↗

Apps covered in this guide

  • Tasker

    6.3.13 · 29.84 MB · Freeware

  • Solid Explorer

    2.8.38 · 22.13 MB · Freeware

  • MX Player

    1.84.2 · 87.03 MB · Freeware

  • Snapseed

    2.22.0 · 143.11 MB · Freeware

  • FaceApp

    12.2.1 · 51.07 MB · Freeware

  • PhotoRoom

    5.3.6 · 307.7 MB · Freeware

  • VSCO

    385.0.0 · 180.24 MB · Freeware

  • Remini

    3.7.620 · 267 MB · Freeware

Frequently asked questions

What is an XAPK file?

A ZIP archive containing a base APK plus split APKs — separate packages holding the code for one CPU architecture, the resources for one screen density, and one or more language sets. Some also carry an OBB asset file. It is Google's App Bundle format captured as a single downloadable file.

Why does nothing happen when I tap an XAPK?

Because Android's package installer installs APKs, and an XAPK is not one — it is an archive with several APKs inside. There is no error because there is no failure; the system simply has no handler for that file type. You need an app that can open the archive and submit all the parts as one install session.

Can I just extract the XAPK and install the base APK?

It often appears to work and then breaks. The base APK installs, the app launches, and it crashes or shows missing text and blank images, because the resources and native libraries it expects live in the split files you did not install. Install all the splits together or none of them.

How much free space does an XAPK install need?

About two and a half times the download size, as a rule of thumb. The archive, the extracted splits and the optimised installed app all exist on disk at the same moment, so a 270 MB bundle can want most of 700 MB free before it will complete. Check the current download size on the app's own page and multiply from there.

Are XAPK files safe?

The format is neutral — it is a ZIP file, and it is exactly as trustworthy as wherever you got it. The real concern is that repackaging an App Bundle into an XAPK breaks the original store distribution chain, so the developer's signature on the splits is the only thing vouching for them. Check the publisher and the SHA-256 hash before installing, not after.

Related guides