You've got an APK you trust, you've enabled install from unknown sources, and the moment you tap Install — or run adb install from your laptop — Android 14 spits back INSTALL_FAILED_INVALID_APK and refuses to budge. This usually happens right after you update a Pixel 6, Galaxy S23, or any device to Android 14, and the same APK that installed fine on Android 13 suddenly won't. It also pops up constantly when people pull APKs from sites like APKMirror and accidentally grab the wrong bundle, or when developers build with an outdated target SDK.
What INSTALL_FAILED_INVALID_APK actually means
The package manager looked at your APK and decided it isn't a valid installable package for this device, on this OS version. That last part matters. Android 14 tightened up a bunch of checks that older versions were lazy about, so a file that was technically always broken now gets rejected outright.
Three things cause this error 95% of the time:
- You downloaded an APK that's actually a split bundle. Google Play ships most modern apps as an
.apks,.xapk, or a folder of split APKs. If you rename the basebase.apktoapp.apkand try to install it alone, the package manager sees missing splits and throws this error. - The APK wasn't zipaligned, or it's signed with a v1-only signature. Android 14 enforces v2 signature verification much harder than 13 did.
- The manifest targets an SDK that's too old. Android 14 blocks installs that target below API 23 in some paths, and devs who forgot to bump
targetSdkVersionget hit here.
A quick real-world example: someone grabs WhatsApp from a sketchy mirror, gets a 3 MB file, taps install, and sees this error. The real app is over 70 MB. That 3 MB file is a split APK for one architecture, or worse, a stub. The fix isn't a setting — it's the right file.
Fix it step by step
Step 1: Confirm what you're actually installing
Plug your phone into your computer, open a terminal, and run:
adb shell pm list packages | grep -i your.package.name
unzip -l yourfile.apk | head -30
You should see AndroidManifest.xml, classes.dex, and a resources.arsc file in the listing. If you don't see those, you've got a split, not a full APK. Stop here and grab the full APK from APKMirror or the developer's official site.
Step 2: Install split APKs the right way
If you're stuck with a split bundle (many apps from APKMirror only ship that way now), don't extract the base APK. Install all splits together with install-multiple:
adb install-multiple base.apk split_config.arm64_v8a.apk split_config.xxhdpi.apk
After the command finishes, you should see Success. If you see the same INSTALL_FAILED_INVALID_APK error, one of the splits is corrupt — redownload the bundle.
Step 3: Check the target SDK
Dump the manifest to see what the APK claims to target:
aapt dump badging yourfile.apk | grep targetSdkVersion
If that prints anything below 23, Android 14 won't install it without extra coaxing. The real fix is to get a newer build. A workaround is:
adb install --bypass-low-target-sdk-block yourfile.apk
That flag works on Android 14 QPR1 and later. It's a band-aid — don't rely on it, because the app itself will probably crash on launch anyway.
Step 4: Re-zipalign and re-sign if you built the APK yourself
If you're a developer and this error just started after switching build tools, your APK isn't aligned for Android 14's stricter parser. Run these in order:
zipalign -p -f -v 4 app-unsigned.apk app-aligned.apk
apksigner sign --ks my-release-key.jks --out app-signed.apk app-aligned.apk
apksigner verify --verbose app-signed.apk
You need to see Verified using v2 scheme: true in the output. If v2 says false, Android 14 treats the APK as untrusted and rejects it. Also make sure targetSdkVersion is 33 or higher in your build.gradle:
android {
defaultConfig {
targetSdkVersion 34
}
}
Step 5: Clear the package installer cache
Occasionally the installer itself is the problem. On the phone, head to Settings → Apps → See all apps → Package Installer → Storage & cache → Clear cache. Then reboot. It sounds like voodoo, but I've seen stale package installer state cause this exact error after a bad partial install.
If it still fails, check these
- Storage space. Android reports INSTALL_FAILED_INVALID_APK sometimes when there's no room for the extracted files. You need roughly 3x the APK size free.
- Architecture mismatch. An
arm64-v8asplit won't install on an old 32-bit device. Runadb shell getprop ro.product.cpu.abiand compare. - Wrong Android version. Some APKs declare a
minSdkVersionabove your device. Check withaapt dump badging. - Corrupted download. Compare the SHA-256 hash against what the source lists. A truncated APK throws this error every time.
- Uninstall the old version first. A signature mismatch with the previously installed copy forces the installer into weird failure modes. Full uninstall, then reinstall.
Nine times out of ten, the honest answer is: you grabbed the wrong file. Get the right APK, and this error goes away.