Skip to content
webtoapkfree

How do I fix "There was a problem parsing the package" on Android?

"There was a problem parsing the package" means Android can't read the APK: a broken download, an AAB, a too-new minSdk, or a bad manifest.

GuidesNookesh Karri

Light cover card with the title 'How do I fix "There was a problem parsing the package" on Android?' in dark text and a green accent bar

“There was a problem parsing the package” means Android’s installer opened your APK and couldn’t read it as a valid app for that phone. The usual causes are a partly downloaded or damaged file, a file that is really an AAB rather than an APK, an app whose minimum Android version is higher than the phone’s, or a broken manifest or signature in the build. Each one has a different fix, so find out which you have before you try anything.

What “problem parsing the package” actually means

The parse error comes from the step where Android unpacks the APK and reads its manifest, before any install happens. Parsing is just reading. If the file is cut short, isn’t an APK, or describes an app the phone can’t run, the read fails and you get this dialog.

The dialog doesn’t say which. Android does log a specific error code, though. Bayton’s guide to Android app install errors notes these errors show up in the logs when you install through ADB, a file manager or an unknown-sources install. That code is the fastest route to a fix.

Get the real error code with adb

The quickest way to see the real reason is to install the same file from a computer. The adb documentation gives the command as:

adb install path_to_apk

Instead of the vague dialog, adb prints a failure line with an error name such as INSTALL_PARSE_FAILED_NOT_APK. If you built the APK as a test build, add -t, which the docs say you need for test APKs.

You’ll need USB debugging turned on and the Android platform tools on your computer. If that’s too much setup, work through the checks below. They’re sorted from most to least likely.

Error codes and what to do about each

The common codes from Bayton’s list, and the fix for each:

Error code What it means Fix
INSTALL_PARSE_FAILED_NOT_APK The file isn’t an APK (often an AAB) Get or build the APK version
INSTALL_FAILED_INVALID_APK The package is corrupt or badly packaged Download it again, or rebuild
INSTALL_PARSE_FAILED_SKIPPED Parser failed with no reason given Check the file’s integrity
INSTALL_PARSE_FAILED_BAD_MANIFEST AndroidManifest.xml is missing or corrupt Fix the source and repackage
INSTALL_PARSE_FAILED_BAD_PACKAGE_NAME Package name missing or malformed Fix the package name and rebuild
INSTALL_FAILED_OLDER_SDK The app’s minSdk is above the phone’s Android Use a newer phone, or rebuild for older Android
INSTALL_FAILED_BAD_SIGNATURE The signature is broken Check the signing step
INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION Internal Android failure Retry

The download didn’t finish

A partial download is the most common reason a phone can’t parse an APK. The file has the right name, but the end of it is missing, so the installer can’t read it.

There’s a real example in an app updater’s GitHub issue. Users hit this exact error when the app installed an update it had just downloaded, yet the same file opened fine later from a file manager. The reporters suspected the install sometimes started before the download finished. Their workaround: download first, install separately.

To fix it:

  1. Delete the file from your Downloads folder.
  2. Download it again on a stable connection.
  3. Compare the file size with the size the source lists, if it lists one.
  4. Open the new file from your file manager, not from a half-finished browser notification.

If the APK reached you over Bluetooth, email or a chat app, ask for it again the same way and check the size matches.

You’re trying to install an AAB

An AAB will always fail to parse on a phone. The Android docs describe an Android App Bundle as a publishing format that defers APK generation and signing to Google Play. Play builds device-specific APKs from it; your phone never sees the bundle.

Bayton lists INSTALL_PARSE_FAILED_NOT_APK for exactly this case. Renaming app.aab to app.apk doesn’t help; the contents are still a bundle. If a build tool gave you both files, install the .apk and keep the .aab for the Play Console. Our post on why AAB is replacing APK on Google Play explains the split in more detail.

The phone’s Android is too old for the app

Every app declares a minimum Android version, its minSdk. The versioning docs are direct about this: “If the minSdk value is greater than the system version, the system prevents the installation of the app.”

In one Unity forum thread, a developer got the parse error installing their game on a Samsung Galaxy S2, whether they sent the APK by Bluetooth or email. The phone turned out to be one API level below the game’s minSdk. Updating the phone’s OS fixed it.

Newer phones can hit a related wall from the other side. Bayton notes Android 14 blocks apps that target a very old SDK, which shows up as INSTALL_FAILED_DEPRECATED_SDK_VERSION. That one needs a rebuild with a newer target.

The build itself is broken

If you made the APK yourself, the problem can be inside the package. A damaged or missing manifest, a malformed package name, or a missing signature all stop the installer early.

Signing is the one people miss. The signing docs say “Android requires that all APKs be digitally signed with a certificate before they are installed on a device or updated.” An unsigned release build, or one where a post-build step changed the file after signing, won’t install. See signed vs unsigned APKs for what the signature does.

You can check the signature without a phone. The apksigner tool confirms whether an APK’s signature will verify on every Android version the APK supports:

apksigner verify --verbose --print-certs app.apk

If that fails, re-sign the file. Our guide to signing an APK from the command line walks through it, and APK signature schemes v1, v2 and v3 covers which scheme older phones need.

When the error changes to “App not installed”

Fixing the parse error sometimes reveals a second problem. If Android can now read the file but refuses it, you’ll see “App not installed” instead. That one is usually a signing-key mismatch with an app already on the phone, or a lower version code. Our post on why an APK says App not installed covers those cases.

My take on troubleshooting this error

Skip the “10 fixes” lists and spend two minutes on adb. Clearing the Play Store cache or rebooting won’t fix a truncated file or an AAB. The error code names your cause, and each cause has one fix.

The catch is that adb needs a computer and USB debugging. Helping a non-technical user over the phone, you’re down to three checks: re-download, confirm the file ends in .apk, and compare their Android version with the app’s minimum.

If you built the app with webtoapkfree.com

The builder gives you two files: a signed APK for installing on your phone and an AAB for Google Play. Install the APK. Generated apps need Android 8.0 or newer (minimum SDK 26), so a phone on an older version won’t install them. Packaging and signing run in your browser, so if a download was interrupted, build and download again rather than reusing the partial file.

FAQ

Is “There was a problem parsing the package” a virus warning?

No. It means Android’s package installer couldn’t read the file as a valid APK for that phone. It says nothing about whether the app is safe.

Can I install an AAB file if I rename it to .apk?

No. An AAB is a publishing format, not an installable package. Renaming it doesn’t change what’s inside, so the installer still fails to parse it.

Why does the APK install on one phone but not another?

The most likely reason is the app’s minSdk. If the second phone runs an older Android version than the app’s minimum, the system blocks the install.

Does turning on unknown sources fix the parse error?

Not usually. The unknown-apps permission controls whether a source is allowed to install apps at all. A parse error happens when Android can’t read the file itself.

Sources