Skip to content
webtoapkfree

Why does my APK say "App not installed"?

Usually the APK is signed with a different key than the installed app, has a lower version code, needs a newer Android, or is really an AAB.

GuidesNookesh Karri

Light cover card with the title 'Why does my APK say "App not installed"?' in dark text and a green accent bar

“App not installed” is Android’s generic message for an install that failed a check. The most common causes are an APK signed with a different key from the copy already on the phone, an APK with a lower version code than the installed one, an app that needs a newer Android version than the phone runs, or a file that is really an AAB, not an APK. The fix depends on which one it is, so the first job is to find out.

Get the real error first

The phone’s dialog hides the reason. If you have a computer and a USB cable, install the file with ADB instead. Bayton’s guide to Android app install errors notes these error messages show up in the logs when you install through ADB, and each one names the problem.

The APK is signed with a different key

Error name: INSTALL_FAILED_UPDATE_INCOMPATIBLE.

This is the one that bites people who build their own apps. The Android docs on signing your app say every APK must be signed with a certificate before it’s installed or updated. When you install an update, the system compares the new certificate with the installed one and only allows the update if they match.

A typical way to hit it: you build version one on your laptop, install it on your phone, then rebuild on another computer or in another browser with a fresh key. The second APK has the same package name and a different signature. Android refuses it.

You have two ways out. Sign the new build with the original key, or uninstall the old app first. Uninstalling works, but it deletes the app’s data, which is fine on your own test phone and not fine for anyone else. If the original key is gone, the docs are clear: you can’t publish updates to the existing app, and you can’t regenerate a lost key. Your only path is a new package name, which Android treats as a completely new app.

The version code went backwards

Error name: INSTALL_FAILED_VERSION_DOWNGRADE.

According to the Android docs on versioning, the system uses versionCode to protect against downgrades and won’t install an APK with a lower version code than the one already on the device. Bayton’s guide adds that Android doesn’t support rolling back, so you remove the existing app first. For your own builds, the better fix is to bump the version code and rebuild.

The phone’s Android is too old

Error name: INSTALL_FAILED_OLDER_SDK.

The same versioning page says that if an app’s minSdk is greater than the phone’s system version, the system prevents the installation. There’s no setting that gets around this. Either the app is rebuilt for older Android, or it needs a newer phone.

You tried to install an AAB

Error name: INSTALL_PARSE_FAILED_NOT_APK.

An Android App Bundle is a publishing format. Google Play uses it to generate optimized APKs for each device. Bayton lists this parse error for AAB files that need converting to APK. If a tool gave you both files, the .apk is the one for your phone and the .aab is the one for the Play Console.

The less common causes

  • Not enough storage (INSTALL_FAILED_INSUFFICIENT_STORAGE): free up space and try again.
  • A corrupt or badly packaged file (INSTALL_FAILED_INVALID_APK): download it again, or rebuild it.
  • Wrong CPU architecture (INSTALL_FAILED_NO_MATCHING_ABIS): the app likely isn’t built for the phone’s processor.
  • The phone won’t allow it at all: the Android docs on alternative distribution note that some network providers don’t let users install apps from unknown sources. That usually shows up as a blocked setting rather than this message, but it’s worth ruling out on a carrier or work phone.

If you only got as far as a “not allowed to install unknown apps” prompt, that’s a different problem: on Android 8.0 and newer you have to allow the specific app you opened the file with, such as Chrome or Files.

If you built the app with webtoapkfree.com

The site gives you a signed APK for installing on your own phone and an AAB for Google Play, so the AAB mix-up is easy to avoid: install the APK. Generated apps need Android 8.0 or newer (minimum SDK 26), so a phone on an older version will hit the minSdk check above. The site tracks version codes per package name in your browser, which helps with downgrade errors.

The signing key is the weak spot. Your key and its password-encrypted backup are stored in that browser for the site, and they aren’t synced to other browsers or devices. Build the next version somewhere else with a different key and you get the signature mismatch above. Forget the key’s password and it can’t be recovered. The site also can’t import JKS or P12 keystores from other tools, only its own backups. The APK signing and updates guide explains how to keep that from happening.

My take: back up the signing key before you share the first APK with anyone. Losing it on a test phone costs you a reinstall. Losing it after people have installed the app means they can’t update it in place.

For what comes next, see how to convert a website to an Android app for free, whether online website-to-APK converters are safe, and Google Play’s closed-testing rule if you’re heading for the Play Store.

FAQ

Will uninstalling the old app fix App not installed?

Often, yes, when the cause is a signing-key mismatch or a lower version code. But uninstalling deletes the app’s data on that phone, so it’s a fix for testing, not for real users.

Can I install an AAB file directly on my phone?

No. An Android App Bundle is a publishing format. Google Play turns it into APKs for each device. To install on your own phone, use the APK.

How do I see the real reason an APK won’t install?

Install it over ADB from a computer. The install error, such as INSTALL_FAILED_UPDATE_INCOMPATIBLE or INSTALL_FAILED_VERSION_DOWNGRADE, shows up there instead of the generic App not installed message.

My APK installed before. Why does the update fail now?

The update was probably signed with a different key, or built with a version code that isn’t higher than the installed one. Android checks both before it accepts an update.

Sources