“This App Was Built for an Older Version of Android”: What It Means and What to Do
Why Android shows the “built for an older version of Android” warning, why Android 14 and later refuse to install some old apps, and the ways around each.
Old apps meet two different walls on recent Android: a warning when you open them, and a block when you try to install them. They have different causes and different fixes.
The warning: “This app was built for an older version of Android”
The full text of the dialog, from Android’s own source code, is:
This app was built for an older version of Android. It might not work properly and doesn’t include the latest security and privacy protections. Check for an update, or contact the app’s developer.
When it appears: every app declares the Android version it was built for, its target SDK. When you open an app whose target SDK is below the minimum your Android version considers supported, the system shows this dialog. In Android’s own code that minimum is API 28 (Android 9) on Android 13 through 17, so apps built for Android 8.1 or older get the warning. After you tap OK, it stays hidden for that app until you clear its data or reinstall it.
What it means for you: it is a warning, not a block. Dismiss it and the app runs. The app was simply made for older Android rules, so it may miss newer privacy protections, and some features may behave oddly.
What you can do:
- If the dialog shows a Check for update button, tap it. Android only offers it when the store the app came from can open the app’s page, so apps installed from an APK file usually don’t get it.
- If there is no update, keep using the app if it works. The warning itself changes nothing.
- If you rely on the app, look for a maintained alternative.
The block: the app won’t install at all
Since Android 14, Android refuses to install apps whose target SDK is too old:
| Android version | Refuses to install apps targeting |
|---|---|
| Android 14 | below API 23 (Android 6.0) |
| Android 15 | below API 24 (Android 7.0) |
| Android 16 | below API 24 (Android 7.0), unchanged |
| Android 17 | below API 24 (Android 7.0), unchanged |
So on Android 15 and later, an app built for Android 7.0 to 8.1 installs and shows the warning above, while an app built for Android 6.0 or older doesn’t install at all.
The install just fails. Android’s own installer says “App not installed as app isn’t compatible with your phone”, though phone makers’ installers may word it differently. Behind the scenes the error is INSTALL_FAILED_DEPRECATED_SDK_VERSION: App package must target at least SDK version …. Apps that were already installed before you upgraded stay installed. An update or a reinstall of such an app is most likely blocked like any other install.
Google’s reason, from the Android 14 notes: malware often targets old API levels to avoid protections added later, such as the runtime permission prompts introduced in Android 6.0.
Ways around the block
Only do this for apps you know and trust. The block exists for a reason.
With a computer (ADB). Google documents this flag:
adb install --bypass-low-target-sdk-block FILENAME.apk
On the phone, without root: Install with Options uses Shizuku to run the same kind of install from the phone, one app at a time. You need Shizuku running first; see how to start Shizuku.
On the phone, with root: Disable Target API Block is an LSPosed module that makes every installation behave as if that flag were passed, so old APKs install normally again from any file manager or backup app.
A different message: “This app isn’t compatible with the latest version of Android”
This one is not about the target SDK either. Android shows it on phones that can run both 32-bit and 64-bit apps, when an app contains only 32-bit native code. It is a warning with an OK button, and the app still runs. On phones that only run 64-bit apps, such an app can’t be installed at all, and neither ADB nor the tools above can change that. You need a 64-bit build of the app.
Apps without native code never trigger it. On this site, each app page lists the CPU types its APK includes under What’s inside the APK.
Apps in this guide
-
Install with Options Installs APKs with options normally reserved for adb: test-only apps, downgrades, split APKs and Android 14’s blocked old apps.Download -
Disable Target API Block Lifts the block Android 14 and later put on installing apps built for very old Android versions, for every install method.Download
Sources
- Android 14 behavior changes: minimum installable target API level checked Sep 30, 2026
- Android 15 behavior changes: minimum installable target API level checked Sep 30, 2026
- Android 16 behavior changes (no new minimum target API level) checked Sep 30, 2026
- Android 17 behavior changes (no new minimum target API level) checked Sep 30, 2026
- AOSP framework strings (warning dialog text) checked Sep 27, 2026
- AOSP AppWarnings (when the dialogs are shown) checked Sep 27, 2026