Google Play enforces a minimum targetSdkVersion that advances annually. As of 2026, new app submissions require API 35 (Android 15); existing apps receiving updates require API 34. Submitting below the threshold results in an automated rejection — the Play Console shows a 'Target API level requirement not met' error before any human reviewer sees the app. This is not a lint warning; it is a hard publish block. Additionally, targeting a lower API level disables Android security features that are default-on at higher API levels: scoped storage enforcement, permission upgrade flows, and exact alarm restrictions — each of which affects real user data handling.
Medium because the automated targetSdkVersion check blocks Play Store submission entirely, but the fix is a single build.gradle line plus regression testing.
Update android/app/build.gradle to meet current requirements:
android {
compileSdkVersion 35
defaultConfig {
targetSdkVersion 35
minSdkVersion 24
}
}
For Expo, set in app.json:
"android": { "targetSdkVersion": 35 }
After updating, test on an Android 15 emulator (API 35) — SDK version bumps change permission dialog flows, storage access behavior, and exact alarm scheduling. Run your existing integration tests against the new target before submitting. Document the SDK target in SUBMISSION_NOTES.md alongside the Google Play requirement version that drove the change, so the next engineer understands why the minimum exists.
app-store-metadata-listing.platform-specific.google-target-apimediumandroid/app/build.gradle for targetSdkVersion in the defaultConfig block. For Expo, check app.json for expo.android.targetSdkVersion. For Flutter, check android/app/build.gradle directly. Google Play's current requirement (as of 2026): new app submissions must target API level 35 (Android 15) or higher; existing apps receiving updates must target API level 34 or higher (this threshold advances annually). Also check minSdkVersion — while not a submission blocker, Google Play requires apps to support at least Android 5.0 (API 21) to reach a meaningful user base. If targetSdkVersion is set to a value below Google's current requirement, the submission will be rejected with a "Target API level" error. Also check compileSdkVersion — this should match or exceed targetSdkVersion. Count all instances found and enumerate each.targetSdkVersion is 34 or higher (meets current Google Play requirements); or the project is iOS-only. At least 1 implementation must be confirmed.targetSdkVersion is below 34 (for new submissions as of 2026, the requirement is API 35 — but 34 is the minimum for existing apps receiving updates); or targetSdkVersion is not set at all (defaults to a lower value).android/app/build.gradle present)."android/app/build.gradle sets targetSdkVersion 33 — Google Play requires targetSdkVersion 34 or higher for app updates as of 2024, and 35 for new submissions as of 2026".android/app/build.gradle:
android {
compileSdkVersion 35
defaultConfig {
targetSdkVersion 35
minSdkVersion 24 // Covers ~97% of active Android devices as of 2026
}
}
targetSdkVersion, test on Android 15 (API 35) — behavior changes between SDK levels may cause regressionsapp.json: "android": { "targetSdkVersion": 35 }android/app/build.gradle and run flutter build appbundle to verify