Android blocks sideloaded installs with several different messages, and the causes are unrelated. Reading the exact wording is much more effective than repeatedly re-downloading.
"For your security, your phone is not allowed to install unknown apps"
The most common one, and a normal security mechanism rather than a problem with the file.
- Tap Settings in the promptIt jumps straight to the right page.
- Find the app that opened the APKThe permission belongs to whatever opened the file — your browser or file manager, not the APK.
- Allow from this sourceGo back and tap the APK again.
"There was a problem parsing the package"
Android cannot even read the APK's basic metadata, which points at the file itself:
| Cause | How to tell | Fix |
|---|---|---|
| Incomplete download | File size is noticeably small, or the download was interrupted | Re-download on a stable connection |
| Architecture mismatch | 32-bit phone, arm64 APK | Get the matching build |
| OS version too old | Your Android version is below the app's minimum | Find an older release that supports it |
| File was renamed | Renamed something like .apk.1 to .apk | Download properly rather than renaming |
"App not installed"
The vaguest message, covering several situations:
- A differently signed version is already installed. Builds from different sources have different signatures and cannot overwrite each other. Uninstall the old one first.
- Not enough storage. Android needs roughly two to three times the APK size during install.
- Leftover data. You uninstalled but kept data, and the new version is incompatible. Clear the app's data completely.
- Multi-user or work profile conflict. The same app exists in another profile. Check for app cloning or a work profile.
adb install -r v2rayNG_2.2.6_arm64-v8a.apk
# INSTALL_FAILED_UPDATE_INCOMPATIBLE → signature conflict, uninstall first
# INSTALL_FAILED_INSUFFICIENT_STORAGE → not enough space
# INSTALL_FAILED_NO_MATCHING_ABIS → wrong architecture
# INSTALL_FAILED_OLDER_SDK → OS too oldadb install gives far more precise diagnostics than the on-device message, so it is the fastest way to settle a stubborn failure.
"This app may be harmful" / blocked by security software
Proxy apps get flagged for the same reasons as on the desktop: they need VPN permission and forward traffic, which overlaps with malicious behaviour.
Two habits that prevent most of this
- Download from one consistent source. Consistent origin means consistent signature, so updates install over each other cleanly.
- Check the version number before updating. Android refuses downgrades, and installing an older build reports "app not installed" with no further explanation.