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)

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 ➔