Google Play's target API level 36 requirement for 2026

Updated

Every year Google Play raises the minimum API level an app must target, and every August some developers find out when an upload is refused. The 2026 step happened on 31 August 2026.

What does Google require now?

In Google's words: "New apps and app updates must target Android 16 (API level 36) or higher to be submitted to Google Play." The exceptions are by platform:

  • Wear OS and Android Automotive OS apps: API level 35 or higher.
  • Android TV and Android XR apps: API level 34 or higher.
  • Permanently private apps restricted to one organisation for internal distribution are exempt.

Apps already on Google Play have a separate, lower bar: they must target Android 15 (API level 35) or higher to stay available to new users on devices running a newer Android version. An app below that can still be used by the people who have it, but new users on newer phones cannot install it.

How do I check what my build actually targets?

Check the built file, not your config. The most common version of this problem is a project that says 36 and an upload built before the change, or a framework default that was never overridden.

For an APK, either of these prints the target SDK from the compiled manifest:

aapt2 dump badging app-release.apk
apkanalyzer manifest target-sdk app-release.apk

In the aapt2 output, look for targetSdkVersion:'36'. Both tools come with the Android SDK build tools and command-line tools.

How do I change it?

Set targetSdk to 36, and compileSdk to 36 or higher: you cannot target an API level you do not compile against.

Native Android (Gradle)

In app/build.gradle.kts:

android {
    compileSdk = 36

    defaultConfig {
        targetSdk = 36
    }
}

In a Groovy build.gradle, the same settings are compileSdk 36 and targetSdk 36.

Flutter

Open android/app/build.gradle.kts. By default it reads:

compileSdk = flutter.compileSdkVersion
// ...
targetSdk = flutter.targetSdkVersion

Those values come from your Flutter version. Flutter's documentation says you can replace them with specific numbers when you need to, so either upgrade Flutter to a version whose default is 36, or set targetSdk = 36 and compileSdk = 36 yourself.

React Native

In a React Native project the versions usually live in android/build.gradle:

buildscript {
    ext {
        compileSdkVersion = 36
        targetSdkVersion = 36
    }
}

Upgrading React Native is the cleaner route when your version is old, because the native dependencies expect the SDK levels the template was built for.

Expo

Each Expo SDK version sets its own Android SDK levels, so upgrading Expo is the usual fix. To set them explicitly, use the expo-build-properties plugin in your app config:

{
  "expo": {
    "plugins": [
      ["expo-build-properties", { "android": { "compileSdkVersion": 36, "targetSdkVersion": 36 } }]
    ]
  }
}

Then build again. Changing the config does nothing to a build you already made.

What changes when my app targets 36?

Targeting a new level turns on that level's behaviour changes for your app. For API 36 (Android 16), Google's list includes:

  • Edge-to-edge is no longer optional. The attribute apps used to opt out, windowOptOutEdgeToEdgeEnforcement, is deprecated and disabled, so your layouts must handle drawing behind the status and navigation bars.
  • Predictive back is on by default on Android 16 devices: onBackPressed is no longer called and KEYCODE_BACK is no longer dispatched, unless you opt out with android:enableOnBackInvokedCallback="false".
  • Orientation and resizability restrictions are ignored on large screens (smallest width of 600dp or more): screenOrientation, resizableActivity and aspect-ratio limits no longer apply there.
  • Body sensor permissions become granular health permissions, such as READ_HEART_RATE instead of BODY_SENSORS.

Test on an Android 16 device or emulator before you upload. Your closed testers are the right people to catch what changed.

Check it before Google does

The target API level is one line in the manifest, and so are the permissions that need a Play Console declaration. The pre-launch checklist covers the rest of what Google looks at before an app goes live.

Sources

Next steps

Still need testers? Get 12 testers for your closed test through a free test-for-test exchange - you test another developer's app, they test yours, and every opt-in is verified.

Applying for production soon? Check your APK against the Google Play launch checklist - target API, permissions that need a declaration, your Data Safety form and leaked keys. The first check is free.

Common questions

What target API level does Google Play require in 2026?
From 31 August 2026, new apps and app updates must target Android 16 (API level 36) or higher, except Wear OS and Android Automotive OS apps (API 35) and Android TV and Android XR apps (API 34).
Can I get more time to update my target API level?
Yes. Google says you can request an extension to 1 November 2026, through a form in Play Console.
What happens to my existing app if I do not update it?
An existing app must target at least API level 35 to stay available to new users on devices running a newer Android version. Below that, new users on newer devices cannot find or install it.
Does compileSdk have to change too?
Yes. compileSdk must be at least as high as targetSdk, so set both to 36 or higher.

Apps currently in closed testing

Real developers running the test described above. Test one, and get testers for your own app back.

Closed testing

FitLifeApp is a daily habit and goal-tracking app that helps users monitor water intake, step goals, and mood entries. Please test the following: - Set a daily water goal, add water intake, and check whether the totals and remaining amount update correctly. - Set a step goal and check the progress display. - Add mood entries and review previous records. - Close and reopen the app to check whether your saved data is still available. - Use the app on different days to check daily tracking and history. - Check for confusing navigation, overlapping text, or buttons that do not work correctly. Please join the Google Group and the Google Play closed test using the same Google account. Install the app through Google Play and stay enrolled for at least 14 consecutive days, using its features during the testing period. When reporting a problem, include what happened, the steps to reproduce it, your device model, and Android version. Screenshots are welcome. Thank you for helping improve FitLifeApp!

Health & FitnessProductivityLifestyle

Open to testers · 14-day test

Closed testing

Testers must join the Google Group using the same Google account they use on their Android device's Google Play Store. Testers must open the opt-in link, tap Become a tester, and then download the build via the Play Store link provided.

News & Books

Open to testers · 14-day test

Closed testing

Hi! I’m looking for testers for Crew Bites, a Flutter app that helps groups organize food orders, track who ordered what, and calculate the final bill fairly. Please test the main flow: add people, add food orders, select a restaurant/bundle, add tax/service/tip/delivery, review the total, and save or share the result. I’d especially appreciate feedback about usability, layout, performance, and any bugs on your Android device. Thank you!

Food & Drink

Open to testers · 14-day test

Related guides

May we use analytics and ad measurement? Analytics (Vercel, and Ahrefs on our public pages) count page views without cookies. Ad measurement lets Google's tag on our public pages see which visits came from our Google ads, using a Google cookie. The site works the same either way. Cookie Policy · How Google uses data ·