Every year, Google Play updates its target API level requirements to ensure Android apps adhere to modern security, battery optimization, and privacy standards. Submitting an application targeting an outdated Android SDK will result in an immediate upload error in the Play Console: "Your app currently targets API level X and must target at least API level Y to be submitted."
For 2026, all new app submissions and app updates must target API level 34 (Android 14) or higher, with deadlines quickly approaching for mandatory API level 35 (Android 15) targeting. Here is your definitive migration roadmap.
1. Target API Level Deadlines Timeline
| Submission Type | Minimum Target API Level | Enforcement Date |
|---|---|---|
| New App Submissions (Closed/Production) | API 34 (Android 14) / API 35 (Android 15) | Active Policy Requirement |
| Existing App Updates | API 34+ | Active Policy Requirement |
| Wear OS / TV / Auto Apps | API 34+ | Active Policy Requirement |
2. Key Breaking Changes in Android 14 (API 34)
A. Mandatory Foreground Service Types
If your app invokes startForegroundService(), you are now required to declare the exact android:foregroundServiceType attribute in your AndroidManifest.xml and request corresponding runtime permissions.
<service
android:name=".services.DownloadService"
android:foregroundServiceType="dataSync"
android:exported="false">
</service>
B. Granular Visual Media Permissions
Android 14 introduces READ_MEDIA_VISUAL_USER_SELECTED. Users can now grant access to specific photos and videos rather than their entire media gallery. Apps using legacy READ_EXTERNAL_STORAGE will fail to compile or throw security exceptions.
3. Preparing for Android 15 (API 35)
- Edge-to-Edge by Default: Android 15 enforces edge-to-edge layouts for apps targeting API 35. Status bars and navigation bars are transparent, requiring proper handling of WindowInsets (
androidx.core.view.WindowInsetsCompat) to prevent UI clipping. - 16KB Page Size Support: Android 15 devices with 16KB memory page sizes are emerging. Apps utilizing native C++ libraries must be recompiled with 16KB alignment (
-Wl,-z,max-page-size=16384) to prevent catastrophic crashes. - Partial Screen Sharing & Recording Detection: Apps handling sensitive content (banking, DRM, private messaging) can now detect screen recording activities.
4. How to Update in React Native, Expo, and Flutter
React Native & Expo (SDK 52 / SDK 57+):
In your app.json or build.gradle, update the targetSdkVersion and compileSdkVersion:
android {
compileSdkVersion 34 // or 35
defaultConfig {
targetSdkVersion 34 // or 35
minSdkVersion 24
}
}
Flutter (Flutter 3.24+):
Open android/app/build.gradle and ensure targetSdkVersion = 34 or use flutter.targetSdkVersion linked to modern Gradle plugins.
5. 64-Bit Architecture & Native Code Verification
Google Play requires all apps containing native code (C/C++ shared libraries .so) to provide 64-bit architectures (arm64-v8a and x86_64) alongside 32-bit versions. When building App Bundles (.aab), ensure your ndk.abiFilters include both armeabi-v7a and arm64-v8a.
Validate New API Builds in Real Beta Cohorts
Upgrading your target API level frequently causes subtle runtime permission crashes and edge-to-edge layout breaks on real hardware. Testers Hub lets you test your updated APK/AAB with 12 real human testers across dozens of Android OS versions (from Android 10 to Android 15), ensuring 100% compliance before public release.
Test Your Updated Build on Testers Hub ➔