Naar inhoud gaan
App-updates

Target API level 36 op Google Play: verlenging tot 1 november 2026 en fix voor Expo, Flutter en React Native

Deadline van 31 augustus gemist? Lees wat de verlenging tot 1 november 2026 je nog oplevert en zet Expo, Flutter of React Native over naar API 36 zonder dat terugnavigatie of lay-outs breken.

Kort antwoord

De regel voor target API level 36 houdt in dat sinds 31 augustus 2026 elke nieuwe app en elke app-update die naar Google Play wordt gestuurd Android 16 (API 36) moet targeten. Developers van wie de app een beleidswaarschuwing kreeg, konden via de pagina Beleidsstatus een verlenging tot 1 november 2026 aanvragen. Zodra die verlenging afloopt, blokkeert Play updates totdat je een build met targetSdk 36 uploadt. Expo SDK 54+, Flutter 3.38+ en React Native 0.81+ targeten standaard API 36.

Belangrijkste punten
  • Sinds 31 augustus 2026 moeten nieuwe apps en app-updates op Google Play Android 16 (API level 36) targeten. Wear OS en Automotive hebben API 35 nodig, Android TV en XR API 34.
  • De verlenging loopt maar tot 1 november 2026. De link naar het aanvraagformulier bereikt niet-conforme apps via de meldingen in Play Console en via de pagina van de waarschuwing onder Beleidsstatus.
  • Als een bestaande telefoonapp API 35 of hoger target, blijft hij beschikbaar voor nieuwe gebruikers. Wie de deadline mist, kan geen updates meer uitbrengen, maar de huidige vermelding blijft staan.
  • Expo SDK 54 (React Native 0.81) en Flutter 3.38 targeten standaard API 36. Upgraden werkt meestal beter dan het getal met de hand aanpassen.
  • Als een app API 36 target, roept Android onBackPressed niet meer aan en negeert het oriëntatievergrendelingen op schermen van 600dp breed of meer. Test terugnavigatie en tablet-lay-outs voordat je uploadt.
API 36 of geen update

De eis voor target API level 36 op Google Play betekent dat een release die voor iets lager dan Android 16 is gebouwd niet meer live kan. Sinds oktober 2026 weigert Play elke nieuwe app en elke update die een lager niveau target, vaak met de melding Target SDK of artifact is too low. Apps die een beleidswaarschuwing kregen, konden extra tijd vragen, maar die verlenging stopt op 1 november 2026. Deze gids behandelt wat de verlenging je nog oplevert, hoe je Expo, Flutter en React Native naar API 36 brengt en wat er daarna vaak stukgaat.

Wat blokkeert de eis voor target API level 36 precies?

Hij blokkeert inzendingen. Sinds 31 augustus 2026 kun je geen nieuwe telefoonapp of update uploaden tenzij die API 36 target. Apps die al live staan en API 35 of hoger targeten, blijven volledig beschikbaar, ook voor nieuwe gebruikers.

Volgens Googles vereisten voor het target API level geldt: "Nieuwe apps en app-updates moeten Android 16 (API level 36) of hoger targeten om bij Google Play te kunnen worden ingediend." De eisen verschillen per apparaattype, en de enige volledige uitzondering geldt voor permanent privé-apps die bedoeld zijn voor interne distributie binnen één organisatie.

ApparaattypeNieuwe apps en updates (vanaf 31 aug. 2026)Bestaande apps blijven volledig beschikbaar als ze targeten
Telefoon, tablet, Android AutoAPI 36API 35 of hoger
Wear OSAPI 35API 34 of hoger
Android Automotive OSAPI 35API 32 of hoger
Android TVAPI 34API 33 of hoger
Android XRAPI 34API 34 of hoger

Een bestaande app onder die niveaus "is alleen beschikbaar op apparaten met een Android-versie die gelijk is aan of lager is dan het target API level van je app." Mensen die hem al hebben geïnstalleerd, kunnen hem gewoon blijven gebruiken. Iemand met een nieuwere telefoon krijgt echter te zien dat de app "is gemaakt voor een oudere versie van Android".

Kun je de verlenging vóór 1 november 2026 nog krijgen?

Alleen als Play je app een beleidswaarschuwing heeft gestuurd en het aanvraagformulier daar nog zichtbaar is. Ook dan loopt de verlenging uiterlijk tot 1 november 2026. Het gaat dus om een paar extra dagen voor een fix die bijna klaar is, niet om een nieuw plan.

Google zegt dat het betrokken apps "een link naar een formulier voor een verlengingsaanvraag via hun meldingen" stuurt, en dat het formulier "beschikbaar is via de detailpagina van de waarschuwing of het probleem op de pagina Beleidsstatus". Apps die al aan de eis voldoen, krijgen geen formulier te zien.

  1. Open Play Console en selecteer de app.
  2. Zoek in de inbox of bij de meldingen naar het bericht over het target API level. Staat het er, volg dan de link.
  3. Zo niet, ga naar Beleidsstatus, open de waarschuwing of het probleem over het target API level en zoek op de detailpagina naar het formulier voor een verlengingsaanvraag.
  4. Vul het formulier in voor elke betrokken app. Elke app heeft een eigen waarschuwing.
  5. Of de verlenging nu wordt toegekend of niet: plan om vóór 1 november 2026 een API 36-build te uploaden. Na die datum hebben updates API 36 nodig.

Hoe zet je Expo, Flutter en React Native over naar API 36?

De netste route is upgraden naar een frameworkversie die al API 36 target: Expo SDK 54, React Native 0.81 of Flutter 3.38. Kun je nog niet upgraden, dan kun je het getal met de hand verhogen, maar dan moet je ook zelf de gedragswijzigingen van Android 16 afhandelen.

StackTarget standaard API 36 vanafWaar het getal staatHandmatige route als upgraden niet kan
Expo (managed / CNG)SDK 54 (React Native 0.81)Gegenereerd door prebuild; overschrijven met expo-build-propertiestargetSdkVersion: 36 en compileSdkVersion: 36 in de expo-build-properties-plugin
React Native (bare)0.81android/build.gradleZet compileSdk en targetSdk op 36 en schakel predictive back uit in het manifest
Flutter3.38 (flutter.targetSdkVersion = 36)android/app/build.gradle(.kts)Vervang een hardcoded 35 door 36 of door flutter.targetSdkVersion

Expo. Volgens de changelog van SDK 54 zijn SDK 54 en React Native 0.81 "nu gericht op Android 16". Upgrade met npx expo install expo@^54.0.0 --fix, draai npx expo-doctor@latest en, als je Continuous Native Generation gebruikt: "Verwijder de mappen android en ios als je ze voor een eerdere SDK-versie hebt gegenereerd." Op SDK 53 kun je proberen targetSdkVersion: 36 in te stellen via de plugin expo-build-properties, maar React Native 0.79 handelt terug nog af via onBackPressed, dus lees eerst de volgende sectie voordat je dat uitbrengt.

Flutter. De releasenotes van Flutter 3.38 noemen als standaardwaarden flutter.compileSdkVersion (API 36) en flutter.targetSdkVersion (API 36), en "raden sterk aan om in je buildbestanden de API level-variabelen te gebruiken die de Flutter SDK aanlevert". Versie 3.38 vereist ook minimaal Java 17. Staat targetSdk = 35 hardcoded in je app-module, dan verandert de Flutter-upgrade dat niet, dus controleer het bestand.

Bare React Native. Zet compileSdkVersion en targetSdkVersion op 36 in android/build.gradle. Op 0.81 en later ben je dan grotendeels klaar. Op oudere versies voeg je ook android:enableOnBackInvokedCallback="false" toe aan <application> in AndroidManifest.xml. Zonder die regel slaan de hardware-terugknop en het terug-gebaar je JavaScript-navigatie over.

Wat gaat er stuk als een app Android 16 gaat targeten?

Terugnavigatie en lay-outs op grote schermen breken het vaakst. Met API 36 als target roept Android onBackPressed niet meer aan, kun je edge-to-edge niet meer uitschakelen en worden vergrendelingen van oriëntatie en aanpasbaar formaat genegeerd op schermen van minstens 600dp breed.

De wijzigingen die het meest uitmaken voor cross-platform apps, uit Googles overzicht van gedragswijzigingen in Android 16:

  • Predictive back: "onBackPressed wordt niet aangeroepen en KeyEvent.KEYCODE_BACK wordt niet meer verzonden." Het instellen van android:enableOnBackInvokedCallback="false" is een tijdelijke uitweg.
  • Edge-to-edge: windowOptOutEdgeToEdgeEnforcement is "verouderd en uitgeschakeld", waardoor een header of knop onderaan onder de statusbalk of gebarenbalk terecht kan komen.
  • Grote schermen: op schermen van 600dp en breder worden screenOrientation, resizableActivity en beperkingen van de beeldverhouding genegeerd, waardoor lay-outs die alleen staand zijn ontworpen kunnen uitrekken. Games zijn uitgezonderd. PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY is een tijdelijke uitweg die "niet meer geldt bij het targeten van API level 37".
  • Tekst: elegantTextHeight wordt genegeerd, wat de regelhoogte kan veranderen voor Arabisch, Thai, Tamil en diverse andere schriften.
  • Gezondheidssensoren: BODY_SENSORS wordt vervangen door gedetailleerde gezondheidsrechten zoals READ_HEART_RATE.

Waar liepen andere developers tegenaan bij de overstap naar API 36?

De openbare meldingen tot nu toe laten twee soorten problemen zien: gedrag van de terugknop dat zonder enige foutmelding verandert, en libraries die ervoor zorgen dat het target level van de bundle die Play ontvangt afwijkt van wat in de projectbestanden staat.

Audius (React Native 0.79). In pull request #14635 schrijft het Audius-team dat Google Play beide uploads van Android-versie 1.5.186 weigerde met Target SDK of artifact is too low. Ze verhoogden compileSdk en targetSdk van 35 naar 36, zetten build tools op 36.0.0 en voegden android.suppressUnsupportedCompileSdk=36 toe, omdat "RN 0.79 AGP 8.8 vastzet". Ook stelden ze enableOnBackInvokedCallback="false" in, omdat terug anders "React Navigation zou omzeilen". Een latere PR haalde die uitzondering weer weg na de overstap naar React Native 0.81, dat zelf een OnBackPressedCallback registreert.

Een Flutter 3.35.2-app. In Flutter-issue #174516 zette een developer targetSdk 36 in Gradle en in het manifest, maar Play Console meldde nog steeds "Your bundle targets SDK 34, but uses a Play Core library that cannot be used with that version." Het verwijderen van de oude library com.google.android.play:core:1.10.3 leidde tot R8-fouten over "Missing classes". Het oplossen daarvan leidde weer tot "You can't rollout this release because it doesn't allow any existing users to upgrade to the newly added app bundles." De bundle werd uiteindelijk geaccepteerd nadat ProGuard-keep-regels waren toegevoegd, minSdk expliciet was ingesteld en de splits voor taal, dichtheid en ABI waren uitgeschakeld, ten koste van een grotere download.

De gemeenschappelijke les: het getal in Gradle aanpassen is niet genoeg. Audius moest runtimegedrag repareren en de Flutter-developer moest een dependency aanpakken die veranderde wat Play uit de bundle las. Controleer het gebouwde artefact en test op een apparaat met Android 16, niet alleen het configuratiebestand.

Hoe controleer je een API 36-build voordat je hem uploadt?

Lees het target level uit de release-bundle zelf, zet de bundle daarna op een interne of gesloten testtrack en probeer terugnavigatie, insets en een tablet-lay-out uit op Android 16. Een afwijzing of een bug in productie kost veel meer tijd dan deze controles.

Uitgewerkt voorbeeld: een Expo SDK 53-app die API 35 target en nog één update nodig heeft.

  1. Draai npx expo install expo@^54.0.0 --fix, daarna npx expo-doctor@latest, en los op wat het rapporteert.
  2. Gebruikt het project Continuous Native Generation, verwijder dan de oude mappen android en ios en bouw opnieuw. Anders voer je de native upgradewijzigingen met de hand door.
  3. Bouw de release-AAB, bijvoorbeeld met eas build -p android --profile production.
  4. Controleer het target met bundletool dump manifest --bundle app.aab --xpath /manifest/uses-sdk/@android:targetSdkVersion. Dit moet 36 opleveren.
  5. Upload naar interne tests. Druk op een Android 16-telefoon op terug in elk genest scherm, controleer of headers en knoppen onderaan niet onder de systeembalken verdwijnen, en draai een tablet of een emulator met aanpasbaar formaat.
  6. Promoot naar productie met releasenotes die de Android 16-fixes noemen.

Wil je sneller testen, gebruik dan de testersopzet uit onze gids voor gesloten tests op Google Play, en leen formuleringen voor de updatetekst uit onze voorbeelden van releasenotes. Besteed je de release liever uit, dan dekt onze App Store-indieningsservice Play Console en App Store Connect voor $599 voor beide stores. Kosten voor developeraccounts komen daar nog bij.

Veelgestelde vragen

Wat gebeurt er als ik de verlenging voor het target API level van 1 november 2026 mis?

Je huidige vermelding blijft staan. Een telefoonapp die API 35 of hoger target, blijft beschikbaar voor bestaande en nieuwe gebruikers. Play Console weigert wel elke nieuwe release, ook dringende bugfixes, totdat de bundle Android 16 (API 36) target. Apps onder API 35 kunnen alleen worden geïnstalleerd op apparaten met die Android-versie of ouder.

Moeten Wear OS- en Android TV-apps API 36 targeten?

Nee. Sinds oktober 2026 moeten nieuwe Wear OS- en Android Automotive OS-apps en -updates API 35 targeten, en Android TV- en Android XR-apps API 34. Alleen apps voor telefoon, tablet en Android Auto hebben API 36 nodig. De enige volledige uitzondering is een permanent privé-app die binnen één organisatie wordt verspreid.

Kan ik API 36 targeten zonder mijn Expo SDK te upgraden?

Op SDK 53 kun je targetSdkVersion en compileSdkVersion op 36 zetten in de expo-build-properties-plugin, en sommige developers hebben dat gedaan. React Native 0.79, dat SDK 53 gebruikt, stuurt drukken op terug nog via onBackPressed, en Android 16 roept dat bij API 36 niet meer aan. Je zou je dan moeten afmelden door enableOnBackInvokedCallback op false te zetten. Upgraden naar SDK 54 is de ondersteunde route.

Wat is het verschil tussen compileSdkVersion en targetSdkVersion?

compileSdkVersion is de Android API-versie waartegen je code wordt gecompileerd. targetSdkVersion vertelt Android welk versiegedrag je app heeft overgenomen, en Google Play handhaaft die waarde. compileSdk moet gelijk zijn aan targetSdk of hoger, dus overstappen naar target 36 betekent compileren tegen API 36 of later. Expo SDK 58 compileert bijvoorbeeld tegen 37 en target 36.

Waarom zegt Play Console nog steeds dat mijn app een ouder API level target nadat ik build.gradle heb aangepast?

Play leest het target level uit de bundle die je uploadt, niet uit je bronbestanden. Een hardcoded waarde in een andere module, een verouderde plugin of een library zoals de oude Play Core kan het samengevoegde manifest veranderen. Draai bundletool dump manifest op de release-AAB om de echte targetSdkVersion te zien, en controleer of je de nieuwe build hebt geüpload en niet een oud artefact.

Bronnen & verder lezen

Beleid verandert. Controleer de officiële documentatie voordat je indient.

Neem je build mee. Of je idee.

Laten we je app over de streep trekken.

Een gericht gesprek om uit te zoeken wat er tussen je app en een live vermelding in de store staat.

Plan een gesprek ↗