Naar de inhoud

Buildfout ontleed

Je app moet 16 KB-geheugenpagina's ondersteunen: zo los je het op

Play Console markeert één ding en noemt geen eigenaar: er zit een native library in je bundle die nog gebouwd is voor geheugenpagina's van 4 KB. Dit artikel vindt het precieze .so-bestand, vertelt je welke dependency het meelevert, geeft je de kortste oplossing voor jouw framework, en overhandigt je de opdrachten die bewijzen dat de build schoon is voordat je hem opnieuw uploadt.

1 feb 2027 Releaseblokkade begint
API 35+ Bereik, 64-bits apparaten
2**14 Minimale ELF-uitlijning
.so Bekijk eerst je native code

Welke deadline geldt er echt

Waarschuwingsfase, releaseblokkade geldt nog niet
161 Dagen tot updates die niet voldoen worden geblokkeerd
2 Eerdere deadlines die je gelezen kunt hebben, beide vervangen
1 nov 2025 origineel 31 mei 2026 uitstel 1 feb 2027 huidig Vandaag

De huidige Google-pagina, laatst bijgewerkt op 5 augustus 2026, zegt dat apps met Android 15 (API-niveau 35) of hoger als doel geheugenpagina's van 16 KB moeten ondersteunen op 64-bits apparaten, en dat je vanaf 1 februari 2027 geen updates meer kunt uitbrengen die dat niet doen. Kreeg je van een zoekresultaat 1 november 2025 of 31 mei 2026 te zien, dan is dat geschreven voordat de datum verschoof.

Snel antwoord

Google Play verplicht apps met Android 15 (API-niveau 35) of hoger als doel om geheugenpagina's van 16 KB te ondersteunen op 64-bits apparaten, en vanaf 1 februari 2027 kun je updates die dat niet doen niet meer uitbrengen. Een app die alleen in Java of Kotlin is geschreven, inclusief al zijn libraries en SDK's, voldoet al. Een app die native .so-libraries meelevert faalt totdat elk van die bestanden opnieuw is gebouwd of vervangen, bij voorkeur met Android Gradle Plugin 8.5.1+ en NDK r28+, en de build twee losstaande controles doorstaat: elk ELF-LOAD-segment uitgelijnd op minstens 2**14, en de app bundle die PAGE_ALIGNMENT_16K rapporteert. Je framework upgraden is geen bewijs; het artefact is dat wel. Legt deze waarschuwing een gesloten test stil waar je middenin zat, dan houdt PrimeTestLab de testerkant draaiend terwijl jij opnieuw bouwt.

De waarschuwing is kort, noemt hooguit een bestandsnaam, en komt binnen op het moment dat je de build al af waande. Daarom herhalen zich steeds dezelfde drie verkeerde afslagen: ontwikkelaars vertrouwen op een deadline die verschoven is, upgraden een framework en gaan ervan uit dat het klaar is, of controleren één lokale APK en kijken nooit naar de bundle waar Google daadwerkelijk vanaf bouwt. Dit artikel volgt de volgorde waarin het probleem echt oplost, namelijk herkennen, herleiden, repareren en bewijzen, en alles erin is actueel per 5 augustus 2026, gecontroleerd tegen de paginagroottegids van Google op dezelfde dag dat die pagina voor het laatst is bijgewerkt. Waar het bewijs alleen uit de issue tracker van een beheerder komt en niet uit officiële releasenotes, zegt de kaart dat erbij in plaats van het af te ronden tot een feit.

Los het op in drie stappen

Elke echte oplossing voor deze fout bestaat uit dezelfde drie zetten in dezelfde volgorde: herken de native library die niet is uitgelijnd, update de dependency die hem bezit, en bewijs het artefact dat je op het punt staat te uploaden. Meteen naar stap twee springen is de reden dat zoveel ontwikkelaars een framework upgraden, opnieuw bouwen, en de waarschuwing ongewijzigd zien terugkomen.

De vereiste zelf is smal. De paginagroottegids van Google zegt dat apps met Android 15 (API-niveau 35) of hoger als doel geheugenpagina's van 16 KB moeten ondersteunen op 64-bits apparaten, en dat je vanaf 1 februari 2027 geen updates meer kunt uitbrengen die dat niet doen. Het geldt alleen voor native code. Zijn jouw app en elke library en SDK erin puur Java of Kotlin, dan stelt Google dat je app al 16 KB-apparaten ondersteunt. Het probleem is dat de meeste ontwikkelaars die deze waarschuwing zien denken dat ze in die categorie vallen, en dat niet doen.

01

Herken de .so die faalt

Open je release-APK in Android Studio via Build > Analyze APK..., klap lib/arm64-v8a en lib/x86_64 open, en lees de kolom Alignment. Schrijf elke bestandsnaam op die daar wordt gemarkeerd. Die bestandsnamen zijn de enige betrouwbare zoeksleutels die je hebt.

Open de zoekhulpmiddelen
02

Update wat hem bezit

Een binary die je zelf compileerde repareer je met je toolchain: AGP 8.5.1 of hoger met NDK r28 of hoger. Een binary die binnenkwam in een plug-in, SDK, engine of AAR kan alleen worden gerepareerd door wie hem gebouwd heeft, dus is de actie: upgraden, vervangen, of een herbouwd artefact opvragen bij dat pakket.

Zoek de kortste route voor jouw framework
03

Bewijs het artefact, niet de upgrade

Twee losstaande controles moeten allebei slagen. Elk ELF-LOAD-segment moet uitgelijnd zijn op 2**14 of hoger, en bundletool moet PAGE_ALIGNMENT_16K rapporteren voor de release-bundle. Als de een slaagt zegt dat niets over de ander.

Genereer de controleopdrachten

De hele beslissing op één scherm

Loop dit door voordat je één versienummer van een dependency aanraakt. Het kost ongeveer twee minuten en het is het verschil tussen het juiste ding repareren en elf pakketten upgraden die nooit het probleem waren.

Bevat de release-APK een map lib met .so-bestanden?

Nee

Voldoet al

Geen native code in de APK. Google stelt dat een app met alleen Java of Kotlin, inclusief zijn libraries en SDK's, al 16 KB-apparaten ondersteunt. Toch één testronde waard, en het is de moeite om te bevestigen dat je dezelfde build hebt bekeken als de build die je hebt geüpload.

Ja

Noemt APK Analyzer of check_elf_alignment.sh een niet-uitgelijnde library?

Ja

Herleid en upgrade dan

Zoek uit welk framework, welke plug-in, SDK of engine precies die bestandsnaam levert en werk dat pakket bij. Jouw eigen NDK kan de vooraf gebouwde binary van iemand anders niet herschrijven.

Nee

Wat rapporteert bundletool dump config voor de release-bundle?

4K

PAGE_ALIGNMENT_4K

De libraries zijn in orde maar de verpakking niet. Stap over op AGP 8.5.1 of hoger en bouw opnieuw, of pas de oude verpakkingsomweg toe als je nog niet kunt upgraden.

16K

PAGE_ALIGNMENT_16K

De verpakking klopt. Test nu de APK's die Play genereert in een echte 16 KB-omgeving en controleer alle code die tijdens het draaien uitgaat van een vaste paginagrootte.

De valkuil in één zin

Een lokale APK die elke uitlijningscontrole doorstaat bewijst niet dat de bundle die je uploadde klopt. Google waarschuwt er specifiek voor dat Android Gradle Plugin 8.3 tot en met 8.5 een bundle kan produceren waarvan de door Play gebouwde APK's niet goed ZIP-uitgelijnd zijn, ook als de APK op jouw machine er perfect uitziet. Dat verschil is veruit de meest voorkomende reden dat de waarschuwing een "geslaagde" reparatie overleeft.

Wat de waarschuwing in Play Console echt betekent

Het gevolg dat Google documenteert is precies: vanaf 1 februari 2027 kun je geen updates uitbrengen die Android 15 (API-niveau 35) of hoger als doel hebben zonder 16 KB-ondersteuning. Het is een releaseblokkade op updates en geen uitspraak dat een gepubliceerde app op die datum uit de store verdwijnt. Tot dan zien de meeste ontwikkelaars een compatibiliteitswaarschuwing en geen harde weigering bij het uploaden.

De formulering doet ertoe, want de paniekversie van dit verhaal reist sneller dan de accurate. Lees de teksten die Google werkelijk toont, en het bereik wordt smal en behapbaar.

Play Console · App bundle details

App must support 16 KB memory page sizes

Action by Feb 1, 2027
Consequence You won't be able to release app updates
Also shown Extension granted

Nagebouwd uit de schermafbeelding van Play Console die Google zelf in de paginagroottegids publiceert. De labels blijven Engels, precies zoals in die schermafbeelding: jouw Console kan ze in het Nederlands tonen, en de indeling en beschikbare knoppen kunnen per account verschillen.

Twee lezingen van die kaart gaan vaak mis. Ten eerste is "Action by Feb 1, 2027" geen aftelling naar verwijdering; de eigen tekst van Google op dezelfde pagina omschrijft de uitkomst als het niet kunnen uitbrengen van die updates. Ten tweede staat Extension granted wel in de schermafbeelding van Google, maar dat bewijst niet dat er voor jou op dit moment een aanvraagprocedure voor uitstel openstaat. Beschouw uitstel pas als echt wanneer je de optie in je eigen Play Console ziet staan.

Welke deadline had jij eigenlijk gelezen?

Er gaan drie data rond en er geldt er maar één. Kies degene die jij zag en dit bepaalt de status ervan tegenover de huidige Google-pagina, die op 5 augustus 2026 voor het laatst is bijgewerkt.

Instrument 01

Deadlinecheck

Kies een datum om te zien of die nog geldt.

Google heeft deze deadline al meer dan eens verschoven. Open de paginagroottegids zelf en controleer het stempel "Last updated" onderaan voordat je een releaseplanning rond 1 februari 2027 maakt. Die ene gewoonte is meer waard dan welke datum ook die in een artikel staat, dit artikel inbegrepen.

Raakt de 16 KB-vereiste mijn app?

Je framework bepaalt dit niet. De inhoud van je gegenereerde APK doet dat. Staan er .so-bestanden onder lib, dan val je binnen het bereik, ook al heb je nooit een C++-bestand geopend, en staan ze er niet, dan zegt de eigen richtlijn van Google dat je al 16 KB-apparaten ondersteunt.

Apps in puur Java of Kotlin

Google is hier ondubbelzinnig: gebruiken jouw app en al zijn libraries en SDK's alleen Java of Kotlin, dan ondersteunt je app al 16 KB-apparaten. Google raadt nog steeds aan om in een 16 KB-omgeving te testen op onverwachte regressies, en dat kost je één emulatorsessie.

De adder zit in de zinsnede "en al zijn libraries en SDK's". Eén dependency voor een database, analytics, crashrapportage, media, kaarten, machinaal leren of beveiliging kan native binaries toevoegen aan een project waarvan de eigen broncode niets dan Kotlin bevat. "Ik heb geen C++ geschreven" is geen bewijs. De map lib wel.

Flutter, React Native, Unity, Kivy en app builders zonder code

Deze stacks leveren native runtimes, enginebinaries en plug-inlibraries mee als onderdeel van hun ontwerp, dus vallen ze bijna altijd binnen het bereik. Google noemt uitdrukkelijk app builders van derden die native libraries gebruiken als manier waarop een app geraakt kan worden, ook als de maker nooit C of C++ geschreven heeft. Wat verschilt is niet of je native code hebt maar welk pakket het falende onderdeel leverde, en daarom komt de bestandsnaam herleiden vóór welke upgrade dan ook.

Hoe je het precies controleert

Android Studio Build Analyze APK... lib/

Open de release-APK, klap lib open, en bekijk de ABI-mappen erin, normaal gesproken arm64-v8a en x86_64. Zijn er shared object-bestanden aanwezig, dan gebruikt je app native code. Geen .so-bestanden en geen map lib betekent dat deze APK helemaal geen native code gebruikt. De kolom Alignment in de analyzer toont waarschuwingen bij de bestanden met uitlijningsproblemen, en dat is de snelste weg van "er is iets mis" naar een bestandsnaam.

Instrument 02

Triage: raakt het mij

01 Wat heeft je app op dit moment als doel?

02 Open de release-APK in APK Analyzer. Zit er een map lib in?

03 Wat beschrijft de app het best?

04 Heb je bundletool dump config op de release-bundle gedraaid?

Waarom een 4 KB-binary faalt op een 16 KB-apparaat

Een geheugenpagina is het kleinste blok dat de kernel in één keer mapt. Android gebruikte van oudsher pagina's van 4 KB; Android 15 voegde ondersteuning toe voor apparaten die zijn ingesteld op pagina's van 16 KB. Een native library legt vast op welke uitlijning zijn segmenten zijn gelinkt, en is die waarde kleiner dan de paginagrootte van het apparaat, dan kan de loader het segment niet op een paginagrens plaatsen.

Dat is de hele mechaniek, en het verklaart het ene getal dat je steeds zult tegenkomen. Uitlijning wordt uitgedrukt als een macht van twee: 2**12 is 4096 bytes, 2**14 is 16384 bytes. De regel van Google is dat elk LOAD-segment in een native library uitgelijnd moet zijn op 2**14 of hoger. Een library die op 2**14 is gebouwd werkt op apparaten met 4 KB én met 16 KB, want 16384 is een net veelvoud van 4096. Een library die op 2**12 is gebouwd werkt alleen op de kleinere paginagrootte. Die asymmetrie is de reden dat de oplossing altijd "verhoog de uitlijning" is en nooit "detecteer het apparaat".

Instrument 03

Paginavisualisatie

Kies de uitlijning die je library rapporteert en zie waar zijn segmenten kunnen beginnen op een apparaat dat pagina's van 16 KB gebruikt.

Slaagt

Er is een tweede, volledig losstaande beperking die buiten de library leeft. Ongecomprimeerde native libraries die in een APK zijn opgeslagen moeten óók op een grens van 16 KB liggen binnen het ZIP-archief zelf. Dat is een eigenschap van de verpakking, wordt gecontroleerd met zipalign en ingesteld door je buildplug-in, en die kan fout zijn terwijl elke library erin perfect is uitgelijnd. Die twee begrippen uit elkaar houden is het nuttigste dat je uit deze sectie kunt meenemen.

De getallen lezen

Zie je 2**14 in de uitvoer van llvm-objdump, dan is dat geslaagd. 2**13 of 2**12 is gezakt. Er is geen tussenscore en geen "bijna goed": één niet-uitgelijnd LOAD-segment in één library in één ABI is genoeg om de waarschuwing op je account te houden.

De kortste oplossing per framework

Gereedheid van een framework en naleving door je app zijn twee verschillende dingen. React Native 0.77 en de ondersteunde Unity-versies zijn echte, gedocumenteerde ondergrenzen. Flutter heeft geen verifieerbaar universeel minimum. In alle gevallen repareert de upgrade de eigen binaries van het framework en laat hij elke plug-in van derden precies even non-conform als daarvoor.

Instrument 04

Frameworkzoeker

    
                

    Wat er hierna nog kan falen

    Alle ondergrenzen in één tabel

    Framework Gedocumenteerde ondergrens Kortste actie Betrouwbaarheid
    Flutter Geen geverifieerd universeel minimum; 3.38 is de gedocumenteerde voorbereidingsmijlpaal (standaard NDK r28) Huidige stabiele Flutter, native plug-ins bijwerken, opschonen, opnieuw bouwen, elke library inspecteren GEDEELTELIJK
    React Native 0.77 Ondersteund upgradepad, daarna native modules en SDK's van leveranciers bijwerken GEVERIFIEERD
    Unity 6.1-lijn 6000.1 of nieuwer Editor upgraden, pakketten en plug-ins bijwerken, opnieuw bouwen GEVERIFIEERD
    Unity 6 LTS 6000.0.38f1 of nieuwer Hetzelfde als hierboven GEVERIFIEERD
    Unity 2022 LTS 2022.3.56f1 of nieuwer Hetzelfde als hierboven GEVERIFIEERD
    Unity 2021 2021.3.48f1 of nieuwer, recht op verlengde LTS vereist Upgraden als je er recht op hebt, anders migreren naar een ondersteunde editor GEVERIFIEERD
    Unity Burst 1.8.21 of nieuwer Burst upgraden zodra lib_burst_generated.so genoemd wordt GEVERIFIEERD
    Native Android NDK r28+ met AGP 8.5.1+ Eigen code opnieuw compileren, elke vooraf gebouwde dependency bijwerken GEVERIFIEERD
    Vast op een oudere NDK r27 of lager met beide linkeropties max-page-size en common-page-size toevoegen, alle libraries opnieuw bouwen WERKT, NIET DE VOORKEUR
    Kivy of Python-builder Geen universele versie geverifieerd Builder en recepten bijwerken, de exacte bestandsnaam upstream aankaarten HANGT AF VAN LEVERANCIER
    No-code builder Geen universele versie geverifieerd Opnieuw genereren op de conforme buildstack van de leverancier, hun de bestandsnaam sturen HANGT AF VAN LEVERANCIER

    De betrouwbaarheidslabels betekenen overal op deze pagina hetzelfde. GEVERIFIEERD betekent dat een actuele primaire bron het rechtstreeks stelt. GEDEELTELIJK betekent dat een betrouwbare bron de kern van de bewering ondersteunt maar niet elk implementatiedetail. GEMELD betekent dat het bewijs uit de issue tracker van een beheerder of uit meldingen van ontwikkelaars komt en niet uit officiële releasenotes.

    Vind precies de library die de fout veroorzaakt

    De bestandsnaam is het hele onderzoek. Zodra je weet dat libfoo.so de falende binary is, verandert de vraag van "hoe repareer ik 16 KB-ondersteuning" in "welk pakket levert libfoo.so, en bestaat daar een nieuwere versie van". Op die tweede vraag bestaat een antwoord; op de eerste niet.

    Begin in APK Analyzer

    Open Build > Analyze APK..., laad de release-APK, en klap lib open. Daarin zie je één map per ABI, normaal gesproken arm64-v8a en x86_64. De kolom Alignment toont waarschuwingen bij bestanden met uitlijningsproblemen. Ook de eigen waarschuwingen van Android Studio en Lint lichten native libraries uit die niet voldoen, dus je kunt dezelfde bevinding op meer dan één plek tegenkomen.

    Noteer elke gemarkeerde bestandsnaam voordat je één versienummer aanraakt. Controleer beide ABI-mappen apart: het is volstrekt normaal dat arm64-v8a slaagt terwijl x86_64 zakt, of andersom, want het zijn verschillende binaries die door mogelijk verschillende pijplijnen zijn gebouwd.

    Lees de uitvoer van de opdrachtregel uit

    Werk je liever in een terminal, dan levert Google check_elf_alignment.sh, dat ALIGNED of UNALIGNED meldt voor een APK, en kun je één library rechtstreeks inspecteren met llvm-objdump. Beide vragen Android SDK Build-Tools 35.0.0 of hoger. Plak hieronder wat ze afdrukken en dit leest het voor je terug.

    Instrument 05

    ELF-lezer

    Plak uitvoer van llvm-objdump -p bestand.so | grep LOAD, check_elf_alignment.sh of zipalign -c -P 16. Alles wordt in je eigen browser ontleed; er wordt niets geüpload.

    Plak wat uitvoer en druk op Uitlezen.

    Zoek uit welke dependency hem bezit

    Play Console en APK Analyzer geven je allebei een bestandsnaam en geen eigenaar. Typ hem hieronder in en dit vertelt je wat er over die binary bekend is, met de kwaliteit van het bewijs erbij, en geeft je de zoekopdrachten met jouw bestandsnaam er al in.

    Instrument 06

    Eigenaar van de library

    Typ of kies een bestandsnaam om de waarschijnlijke eigenaar te bepalen.

    ./gradlew app:dependencies toont je de opgeloste dependencygraaf, en zo vind je het transitieve pakket dat een library binnenhaalde die je zelf nooit hebt toegevoegd. Het vertelt je niet rechtstreeks welk artefact een bepaalde .so bevat, dus combineer het met het uitpakken van de verdachte AAR. Dit zijn praktische diagnosetechnieken en geen door Google voorgeschreven stappen.

    Controleer de app bundle, niet alleen de lokale APK

    Jouw lokale APK en de APK's die Google Play uit je bundle genereert zijn verschillende artefacten. ELF-uitlijning zit in elke library; ZIP-uitlijning is een eigenschap van hoe het archief is ingepakt; en de bundle draagt een configuratie die Play vertelt welke van de twee te gebruiken. Alle drie kunnen elkaar tegenspreken, en alleen de laatste bepaalt wat gebruikers installeren.

    Dit is de mechaniek achter de meest frustrerende versie van het probleem: de ontwikkelaar upgradet alles, inspecteert de lokale APK, ziet schone uitvoer, uploadt, en de waarschuwing staat er nog steeds. Niets van wat hij controleerde was fout. Hij heeft alleen nooit gecontroleerd wat Play beoordeelt.

    Wat jij inspecteerde

    app-release.apk op jouw machine

    Rechtstreeks door Gradle gebouwd op jouw hardware, met jouw verpakkingsgedrag. Slagen voor zipalign bewijst hier dat dit bestand goed is ingepakt.

    Wat Play beoordeelt

    APK's gegenereerd uit app-release.aab

    Door Google gebouwd uit jouw bundle, met de uitlijning waar de bundle om vraagt. Zegt de bundle 4 KB, dan zijn deze fout, hoe schoon je lokale APK ook was.

    Draai dit dus elke keer op de bundle die je op het punt staat te uploaden:

    bundletool dump config --bundle=app-release.aab | grep alignment

    PAGE_ALIGNMENT_16K is het resultaat dat je wilt. PAGE_ALIGNMENT_4K betekent dat de bundle bundletool opdraagt native libraries op grenzen van 4 KB te verpakken, dus elke APK die Play daaruit bouwt zal fout zijn. Google waarschuwt er specifiek voor dat Android Gradle Plugin 8.3 tot en met 8.5 precies dit verschil kan opleveren: de lokale build ziet er uitgelijnd uit, terwijl de app die Play uit de bundle bouwt niet correct installeert op een 16 KB-apparaat. De aanbevolen oplossing is overstappen op Android Gradle Plugin 8.5.1 of hoger.

    Elke opdracht, met je eigen bestandsnamen erin

    Typ je bestandsnamen één keer in. Elke opdracht hieronder herschrijft zichzelf, en elk tabblad toont de exacte uitvoer die als geslaagd telt, zodat je nooit hoeft te raden of een resultaat goed was.

    Instrument 07

    Opdrachtenlab

    
                
    Geslaagd
    Gezakt

    Stop niet bij "APK Analyzer zegt uitgelijnd"

    Een geslaagde APK-inspectie is één van de vier controles en niet de finish. Bevestig de ELF-LOAD-uitlijning, de ZIP-uitlijning van de APK, de bundleconfiguratie, en het gedrag tijdens het draaien van het artefact dat Play werkelijk genereert. Eén daarvan die zakt is genoeg om de waarschuwing op je account te houden na een build waarvan je dacht dat hij klaar was.

    AGP, NDK en de verpakkingsvalkuil

    Twee versies dragen het meeste gewicht. NDK r28 of hoger compileert native code standaard uitgelijnd op 16 KB, en Android Gradle Plugin 8.5.1 of hoger verpakt ongecomprimeerde native libraries correct op ZIP-grenzen van 16 KB. Geen van beide repareert een vooraf gecompileerde binary die in een dependency binnenkwam.

    Het gevaarlijke middenveld is Android Gradle Plugin 8.3 tot en met 8.5. In dat bereik kan een lokale build er volstrekt correct uitzien terwijl bundletool de APK's die het uit jouw bundle voor Play produceert niet ZIP-uitlijnt, en de formulering van Google over de uitkomst is bot: de app die uit die bundle wordt gebouwd installeert niet correct. Zit je op 8.5.0 en doorstaat je lokale APK elke controle die je maar kunt bedenken, dan is dit het eerste dat je moet uitsluiten.

    Instrument 08

    Toolchaincontrole

    
                

    Overzicht van buildinstellingen

    Situatie Instelling Opmerkingen
    Aanbevolen NDK r28 of hoger Levert standaard op 16 KB uitgelijnde native uitvoer
    Aanbevolen AGP 8.5.1 of hoger Verwerkt ongecomprimeerde native libraries op ZIP-grenzen van 16 KB
    NDK r27 of lager -Wl,-z,max-page-size=16384 Verplichte linkeroptie op elk native target
    NDK r27 of lager -Wl,-z,common-page-size=16384 Gebruik samen met de optie voor de maximale paginagrootte
    ndk-build LOCAL_LDFLAGS += ... Pas beide opties toe op elk native target
    CMake target_link_options(...) Pas beide opties toe op elk relevant target
    AGP kan niet omhoog jniLibs.useLegacyPackaging = true Comprimeert native libraries; verhoogt het schijfgebruik na installatie
    AGP 8.0 of lager android.bundle.enableUncompressedNativeLibs=false Extra oude eigenschap naast de optie hierboven
    Code tijdens het draaien getpagesize() of sysconf(_SC_PAGESIZE) Vervang vastgeschreven 4096-waarden en aannames over een vaste PAGE_SIZE

    Het deel dat verpakking niet kan repareren

    Gaat je eigen C- of C++-code uit van een paginagrootte, dan redt geen enkele buildvlag je. Haal vastgeschreven 4096-waarden weg en elk vertrouwen op een vaste PAGE_SIZE-constante, vraag de echte waarde op tijdens het draaien met getpagesize() of sysconf(_SC_PAGESIZE), en loop elke mmap()-aanroep na samen met elk argument dat je met de hand op een pagina uitlijnt. Dit is de foutklasse waarbij een app netjes installeert op een 16 KB-apparaat, de bundlecontroles doorstaat, en dan crasht zodra hij voor het eerst memory mapping aanraakt.

    Volgorde van bewerkingen

    Repareer de compilerkant vóór de verpakkingskant. Pas je eerst de oude verpakkingsomweg toe, dan gaat je APK zipalign doorstaan terwijl de libraries erin nog steeds voor pagina's van 4 KB zijn gebouwd, en heb je het echte probleem achter een groen resultaat verstopt.

    Test in een echte 16 KB-omgeving

    Eén opdracht bepaalt of je test iets betekent: adb shell getconf PAGE_SIZE moet 16384 teruggeven. Draai hem voor elke sessie. Een emulator die stilletjes in 4 KB-modus opstartte laat een kapotte build alles doorstaan wat je ertegenaan gooit.

    Je hebt drie praktische routes en twee specialistische. Kies wat je vandaag echt kunt bereiken; voor het opsporen van paginagroottefouten zit er geen kwaliteitsverschil tussen.

    Instrument 09

    Keuze van testomgeving

      Beperking

      Daarna, elke keer weer, voor elke test

      adb shell getconf PAGE_SIZE

      Ga niet verder tenzij de uitvoer 16384 is.

      Wat je echt moet uitproberen

      Zodra de omgeving bevestigd is, is de nuttige testronde niet "start hij op". Native fouten clusteren in de functies die native code raken, dus draai die bewust: koude start, navigeren door de app, camera, lezen en schrijven in de database, media afspelen en opnemen, inloggen, achtergrondwerk, elke functie met machinaal leren of augmented reality, elk oppervlak van een native plug-in, en alles in je eigen code dat memory mapping gebruikt. Draait een functie op een van de libraries die je zojuist hebt geüpgraded, dan is die functie de test.

      Compatibiliteitsmodus is geen geslaagde test

      Android kan sommige op 4 KB uitgelijnde apps op een 16 KB-apparaat draaien via een compatibiliteitspad, en dan zie je mogelijk een waarschuwing bij de eerste start. Google raadt nog steeds echte uitlijning op 16 KB aan voor de beste betrouwbaarheid en stabiliteit. Een app die alleen draait omdat de compatibiliteitsmodus ingreep is geen gerepareerde app, en uitbrengen op die basis betekent dat de echte storing nog voor je ligt.

      Waarom de waarschuwing een upgrade overleeft

      Bijna elk geval van "ik heb het toch al gerepareerd" is een van dertien specifieke situaties, en elf daarvan zijn te bewijzen met het artefact dat voor je ligt. Kies het symptoom dat past en je weet de oorzaak meestal al voordat je het uitgelezen hebt.

      Instrument 10

      Triage bij hardnekkige waarschuwing

      Waarschijnlijkste oorzaak

      Snelste actie

      Vermijd

      Twee daarvan verdienen een voorbehoud in plaats van een stellig antwoord. Geen enkele primaire bron legt vast hoe lang Google Play erover doet om een geüploade bundle opnieuw te beoordelen, dus blijft je waarschuwing meteen na een upload staan, dan is de eerlijke zet om te bevestigen dat de nieuwe versiecode bij je recentste releases en app bundles verschijnt en het later opnieuw te controleren, in plaats van te vertrouwen op een concreet getal over verwerkingstijden dat je ergens hebt gelezen. En een app die alleen draait omdat de compatibiliteitsmodus ingreep is niet gerepareerd, die wordt getolereerd.

      Libraries van derden die steeds terugkomen

      Dit zijn gemelde voorbeelden, geen ranglijst van hoe gebruikelijk elk ervan is, en geen belofte dat een bepaalde versie jouw build repareert. Een pakket kan in elke release native artefacten toevoegen, verwijderen of vervangen. Het laatste woord heeft altijd de binary die in je eigen release-bundle zit.

      Gebruik dit als startpunt zodra een bestandsnaam je bekend voorkomt, en controleer het daarna tegen de actuele releases en open issues van dat project. Waar het bewijs uit de issue tracker van een beheerder komt en niet uit releasenotes, zegt de kaart dat erbij.

      Instrument 11

      Index met gemelde libraries

      ObjectBox Java NIET GEVERIFIEERD

      libobjectbox-jni.so

      Oudere native Android-libraries faalden in een 16 KB-omgeving. Een specifieke gerepareerde versie was hier niet sterk genoeg bevestigd om te publiceren. Bekijk de actuele releasenotes van ObjectBox voor de versie die 16 KB-ondersteuning toevoegde, en controleer daarna de binary in je gebouwde APK in plaats van op het versienummer alleen te vertrouwen.

      ObjectBox Dart en Flutter NIET GEVERIFIEERD

      meegeleverde Android-library

      De Dart-SDK van ObjectBox levert zijn eigen Android-library mee. Een specifieke gerepareerde versie was hier niet sterk genoeg bevestigd om te publiceren. Bekijk de actuele releasenotes van ObjectBox en controleer daarna het artefact dat je build werkelijk oplevert.

      native sqlite3-library GEMELD

      libsqlite3.so

      Een oudere dependency 3.43.0 dook op in getroffen verpakkingen van Flutter en AWS Amplify. Bewijs uit issues wijst 3.46.1+1 aan als de versie die 16 KiB-ondersteuning toevoegde. Controleer de opgeloste dependencyversie en niet alleen degene die je hebt opgegeven, want een frameworkpakket kan een oudere versie vastzetten.

      SQLCipher voor Android GEDEELTELIJK

      sqlcipher-android

      Het oudere pakket android-database-sqlcipher is upstream afgeschaft ten gunste van het onderhouden pakket sqlcipher-android. Geen enkele specifieke versie was sterk genoeg bevestigd om als gerepareerd minimum te publiceren, dus migreer naar het huidige onderhouden pakket en valideer elke ABI in de gebouwde app in plaats van op een versienummer te vertrouwen.

      FFmpegKit en zijn forks NIET GEVERIFIEERD

      binaries voor mediaverwerking

      De oorspronkelijke FFmpegKit-repository is uit dienst genomen, en er is geen universeel veilige conforme release vastgesteld. De kwaliteit van forks loopt uiteen. Stel precies vast welke fork je build oplevert, inspecteer de ABI-artefacten rechtstreeks, en weeg onderhoud en herkomst af voordat je er een als oplossing kiest.

      Realm JavaScript TEGENSTRIJDIGE MELDINGEN

      Realm- en JNI-binaries

      De meldingen spreken elkaar tegen. Versie 20.1.0 werd gemarkeerd, en een latere melding stelde dat 20.2.0 één Realm-binary repareerde terwijl een andere JNI-binary een probleem bleef. Er kan verantwoord geen enkele veilige versie genoemd worden, dus upgrade en controleer daarna elke library die Realm bijdraagt afzonderlijk.

      MediaPipe Tasks Vision GEMELD

      libmediapipe_tasks_vision_jni.so

      Gemeld op een uitlijning van 2**12. In het geraadpleegde issue is geen gerepareerde release vastgesteld, dus behandel compatibiliteit als versieafhankelijk: bekijk de actuele releasenotes, upgrade, en controleer de binary in je eigen build.

      OpenCV Android GEMELD

      OpenCV Android-artefact

      Uitlijningsproblemen zijn gemeld op een Android-artefact van OpenCV 5.0.0. Het issue in de repository verwijst naar een CI-fix, maar er is geen specifiek uitgebracht artefact veilig vast te stellen. Download precies de AAR waarvan je afhankelijk bent, pak hem uit, en inspecteer de libraries zelf.

      Unity Burst GEVERIFIEERD

      lib_burst_generated.so

      De eigen richtlijn van Unity is om het Burst-pakket bij te werken naar 1.8.21 of hoger zodra dit bestand wordt gemarkeerd. Dit is het enige item in deze index dat op officiële leveranciersdocumentatie steunt en niet op meldingen in issues.

      Unity AR en andere plug-ins GEMELD

      libUnityARCore.so, libquack.so en andere

      Meldingen uit de community noemen deze onder de binaries die een editorupgrade overleven. Er is geen universele versie te noemen, want elk bestand hoort bij een ander pakket. Gebruik de exacte bestandsnaam om te bepalen welk pakket je moet aanpakken.

      Waarom deze index kort is: het aantal issues laat zien welke projecten luidruchtige gebruikers hebben en niet welke libraries het vaakst geïnstalleerd zijn. Een ranglijst met "de meest voorkomende boosdoeners" publiceren zou neerkomen op een statistiek verzinnen. Wat wél algemeen geldt is de methode: neem de bestandsnaam, zoek het pakket, controleer de actuele releases van dat pakket, controleer de binary in je build.

      Hoe dit samenhangt met de API 36-deadline van 31 augustus 2026

      Het zijn twee losstaande vereisten van Google Play die op één punt samenkomen. Een hoger doel-API-niveau kan de 16 KB-waarschuwing zichtbaar maken, omdat de vereiste geldt voor apps die Android 15 (API-niveau 35) of hoger als doel hebben. Dat hogere niveau veroorzaakt de verkeerde uitlijning niet en kan die ook niet repareren.

      Google Play verplicht nieuwe apps en app-updates om vanaf 31 augustus 2026 Android 16 (API-niveau 36) als doel te hebben, met uitstel dat aanvraagbaar is tot 1 november 2026. Dat is een wijziging in je manifest en in het gedrag van je app. De 16 KB-regel is een wijziging in binaire compatibiliteit. Wie op maandag targetSdk verhoogt en op dinsdag een 16 KB-waarschuwing ziet, heeft niets kapotgemaakt: de native libraries waren al gebouwd voor pagina's van 4 KB, en het hogere doelniveau bracht de app alleen maar binnen het bereik van een controle die er hoe dan ook zou komen.

      Vereiste A

      API 36 als doel
      • Datum 31 augustus 2026, uitstel tot 1 november 2026
      • Bereik Nieuwe apps en app-updates
      • Zit in Je manifest en je buildconfiguratie
      • Op te lossen met Het doelniveau verhogen en de gedragswijzigingen van Android 16 opvangen

      Vereiste B

      Ondersteuning voor 16 KB-paginagrootte
      • Datum 1 februari 2027
      • Bereik Apps met API 35+ als doel op 64-bits apparaten
      • Zit in De native binaries binnen je bundle
      • Op te lossen met Elke niet-uitgelijnde library opnieuw bouwen of vervangen

      In de praktijk behandel je ze als één migratie met twee bewijzen. Dat doelniveau ga je toch verhogen, dus plan de audit van je native libraries in dezelfde release in plaats van er middenin de haast rond API 36 achter te komen. Voor de volledige lijst met niveaus per apparaattype, de uitzonderingen en hoe het uitstel werkt, lees je ons artikel over de API 36-deadline van Google Play, en voor de hele route van account tot productie ons artikel over de publicatievereisten van 2026.

      De releasecheck voor het uploaden

      Elf controles, elk met een specifiek bewijsstuk dat het geslaagd is. Werk ze af voordat je uploadt in plaats van nadat Play je vertelt dat er iets mis is, en je verandert een eindeloze debugsessie in een eindige lijst.

      Instrument 12

      Releasecheck

      0 van 11 afgerond

      Nog niets bewezen. Begin met de build die je echt wilt uploaden en niet met de laatste die je toevallig openhad.

      Je voortgang wordt alleen in deze browser bewaard. Er gaat niets ergens naartoe, en je browsergegevens wissen wist ook dit.

      Alle elf controles afronden bewijst technische uitlijning tegen de controles die op deze pagina worden aangehaald. Het is geen belofte van goedkeuring. Google Play kan bij dezelfde upload nog steeds losstaande problemen met beleid, content of kwaliteit aankaarten, en geen enkele checklist ter wereld kan daarvoor spreken.

      Waar dit botst met je gesloten test

      Niets op deze pagina verandert je testervereiste, en niets aan je testers verandert je build. De twee problemen botsen op maar één as: tijd. Een gesloten test van 14 dagen loopt op een klok die je niet kunt pauzeren, en een onderzoek naar een native library loopt op een klok die niemand kan voorspellen.

      De volgorde die pijn doet gaat zo. Een persoonlijk ontwikkelaarsaccount start een gesloten test, de periode van 14 dagen doorlopend aangemeld begint te lopen, en ergens halverwege legt een verhoging van het doelniveau een 16 KB-waarschuwing bloot. Nu bouwt de ontwikkelaar native dependencies opnieuw terwijl een testgroep daar omheen intact moet blijven. Een nieuwe build naar de testtrack uploaden is prima, en Google moedigt ontwikkelaars juist aan om tijdens een test te blijven updaten. Wat de run breekt is dat het aan de testerkant stil wordt.

      Precies dat deel houdt PrimeTestLab stabiel. Wij leveren 12 echte testers op echte apparaten van Android 7 tot en met 17, aangemeld en vastgehouden voor de volle 14 dagen, zodat jouw herbouw plaatsvindt tegen een stabiele test en niet tegen een instortende. Testen start binnen 4-6 uur, en we hebben dit inmiddels voor ruim 7.400 apps in 120+ landen gedaan met een slagingspercentage van 99,9%.

      Zelf testers werven tegenover een begeleide run

      De vereiste van Google Zelf werven Begeleide run
      Minimaal 12 aangemelde testers Echte mensen zoeken, uitleggen en achterna zitten, en dan hopen dat niemand zich afmeldt 12 geleverd en de hele periode vastgehouden
      14 dagen doorlopend Eén tester die halverwege vertrekt breekt de doorlopende periode De groep wordt bewaakt zodat de periode intact blijft
      Echte apparaten, echte mensen Emulators en slapende accounts zijn de gebruikelijke sluiproute, en de gebruikelijke reden dat een run mislukt Echte apparaten van Android 7 tot en met 17
      Tijd tot de eerste aanmelding Dagen, afhankelijk van wie jou antwoordt Testen start binnen 4-6 uur
      Kosten Jouw tijd, in precies de week waarin je al libraries aan het herbouwen bent Vanaf $19.99, plus 5% servicekosten
      Herbouwen tijdens de test Elke nieuwe upload is weer een ronde mensen vragen om te updaten Push gerust nieuwe builds; de groep blijft aangemeld

      Voor de duidelijkheid over de grens: wij bouwen jouw native libraries niet opnieuw en dit artikel is daar ook geen verkooppraatje voor. Het 16 KB-werk is van jou, en alles boven deze sectie is geschreven om dat werk zo kort mogelijk te maken. Wat wij van je bord halen is de testervereiste die er tegelijk naast loopt, zodat de twee problemen niet langer om dezelfde twee weken vechten.

      Tip over de volgorde

      Ben je nog niet aan de gesloten test begonnen en weet je al dat je native libraries hebt, zet dan eerst de testperiode aan en doe het uitlijningswerk daarbinnen. Google meet de kwalificatieperiode aan de hand van testers die doorlopend aangemeld blijven en niet aan de hand van één bevroren build, en het moedigt ontwikkelaars aan om tijdens een test te blijven updaten, dus de twee tijdlijnen kunnen elkaar overlappen in plaats van elkaar op te stapelen. Houd daarbij dezelfde testtrack en dezelfde testgroep aan. Dat scheelt vaak een volle week.

      Veelgestelde vragen

      Wijst Google Play apps die niet met 16 KB werken op dit moment af?

      De huidige documentatie van Google zegt dat je vanaf 1 februari 2027 geen updates meer kunt uitbrengen die Android 15 (API-niveau 35) of hoger als doel hebben zonder 16 KB-ondersteuning op 64-bits apparaten. Voor die datum zien de meeste ontwikkelaars een compatibiliteitswaarschuwing in Play Console en geen harde blokkade. Het gedocumenteerde gevolg op de aangehaalde Google-pagina is dat je updates die niet voldoen niet kunt uitbrengen, en niet dat een al gepubliceerde app automatisch wordt verwijderd.

      Waarom noemt Google 1 februari 2027 terwijl andere artikelen 1 november 2025 noemen?

      1 november 2025 was de deadline die Google oorspronkelijk aankondigde en 31 mei 2026 was een later uitstel dat inmiddels geschiedenis is. Per 5 augustus 2026 tonen zowel de huidige pagina op Android Developers als de huidige schermafbeelding van de Play Console-waarschuwing 1 februari 2027, dus de nieuwere primaire bron is bepalend. Veel blogartikelen en AI-antwoorden citeren nog de oude data omdat ze geschreven zijn voor die wijziging.

      Ik heb nooit C++ geschreven. Waarom raakt dit mijn app?

      Een framework, SDK, plug-in, game-engine, database, mediacomponent of app builder kan native .so-bestanden toevoegen, ook als jouw eigen broncode Dart, JavaScript, Python, Java of Kotlin is. De richtlijn van Google noemt uitdrukkelijk ook apps die NDK-libraries indirect via een dependency gebruiken. Open je APK in Android Studio via Build en dan Analyze APK; elk .so-bestand onder lib betekent dat de verpakte app native code gebruikt.

      Moet er iets veranderen aan een app in puur Kotlin?

      Volgens Google ondersteunt een app die alleen Java of Kotlin gebruikt, inclusief al zijn libraries en SDK's, al 16 KB-apparaten. Google raadt nog steeds aan om in een 16 KB-omgeving te testen op onverwachte regressies. Controleer wel of de echte release-APK geen lib-map heeft voordat je je app puur Kotlin noemt, want één analytics- of databasedependency voegt er al een toe.

      Welke Flutter-versie lost de 16 KB-paginagroottewaarschuwing op?

      Geen enkele officiële bron wijst één Flutter-versie aan die garandeert dat elke Flutter-app en elke plug-in voldoet. De releasenotes van Flutter 3.27 zijn smaller dan ze lijken: ze dekken 16 KB-ondersteuning specifiek voor plugin_ffi-templates en niet de hele engine. Flutter 3.38 is de sterkst gedocumenteerde mijlpaal: Flutter positioneerde die upgrade uitdrukkelijk als voorbereiding op de 16 KB-vereiste van Play en zette de standaard-NDK op r28. Het veiligst is om naar de huidige stabiele Flutter-release te gaan, elke native plug-in bij te werken, de release-bundle opnieuw te bouwen en elk .so-bestand dat eruit komt te inspecteren.

      Welke React Native-versie ondersteunt pagina's van 16 KB?

      React Native 0.77 is de duidelijke officiële ondergrens. De releaseaankondiging stelt dat React Native klaar is om paginagroottes van 16 KB volledig te ondersteunen. Native modules uit de community, lokale C++-code en SDK's van derden kunnen nog steeds incompatibele binaries meeleveren, dus upgrade via het ondersteunde migratiepad van React Native of Expo en inspecteer daarna de gegenereerde APK.

      Welke Unity-versie heb ik nodig voor ondersteuning van 16 KB-paginagrootte?

      Unity noemt 6000.1 of nieuwer, 6000.0.38f1 of nieuwer, 2022.3.56f1 of nieuwer, en 2021.3.48f1 of nieuwer onder verlengde LTS voor Enterprise- of Industry-klanten die daar recht op hebben. Werk ook je native plug-ins bij, en zet Burst op 1.8.21 of hoger als Play Console lib_burst_generated.so noemt. Een ondersteunde editorversie is nodig maar niet genoeg, want plug-ins van derden leveren hun eigen binaries mee.

      Hoe vind ik het exacte .so-bestand dat faalt?

      Open de APK via Build en dan Analyze APK in Android Studio, klap lib/arm64-v8a en lib/x86_64 open, en lees de kolom Alignment, die waarschuwingen toont bij bestanden met uitlijningsproblemen. Wil je het via de opdrachtregel bevestigen, draai dan het script check_elf_alignment.sh van Google op de APK, of inspecteer één library met llvm-objdump -p bestand.so doorgesluisd naar grep LOAD. Elke LOAD-uitlijning onder 2**14 vraagt om actie.

      Waarom slaagt mijn APK terwijl mijn app bundle blijft falen?

      ELF-uitlijning binnen een library en ZIP-uitlijning binnen het verpakte artefact zijn twee losstaande controles. Draai bundletool dump config --bundle=app.aab en zoek met grep op alignment: PAGE_ALIGNMENT_16K slaagt, terwijl PAGE_ALIGNMENT_4K betekent dat gegenereerde APK's nog steeds op 4 KB worden opgevraagd. Google waarschuwt er specifiek voor dat Android Gradle Plugin 8.3 tot en met 8.5 lokaal correct kan lijken terwijl de APK's die Play van jouw bundle bouwt niet goed ZIP-uitgelijnd zijn, dus stap over op 8.5.1 of hoger.

      Is upgraden naar NDK r28 genoeg om het op te lossen?

      Nee. NDK r28 en hoger compileren standaard uitgelijnd op 16 KB, maar dat raakt alleen native code die tijdens jouw build wordt gecompileerd. Het kan geen vooraf gecompileerd .so-bestand herschrijven dat binnenkomt in een AAR, plug-in of game-enginepakket van derden. Elke vooraf gebouwde native dependency moet zelf worden bijgewerkt, vervangen of opnieuw gebouwd en opnieuw geïmporteerd.

      Hoe test ik ondersteuning voor 16 KB zonder een geschikte telefoon te bezitten?

      Installeer een van de 16 KB-systeemimages voor Android Emulator van Google via SDK Manager, of boek een ondersteund apparaat via Samsung Remote Test Lab. Wat je ook gebruikt, bevestig eerst de omgeving met adb shell getconf PAGE_SIZE; de uitvoer moet 16384 zijn voordat de test iets betekent. Succes in een emulator bewijst het gedrag tijdens het draaien en niet de verpakking, dus blijf ook de release-bundle inspecteren.

      Reset of verstoort het oplossen van 16 KB mijn lopende gesloten test?

      Google meet de kwalificatieperiode aan de hand van minstens 12 testers die 14 dagen doorlopend aangemeld blijven en niet aan de hand van één bevroren build, en het moedigt ontwikkelaars aan om de build tijdens een test te blijven updaten. Google publiceert geen uitdrukkelijke garantie die elk scenario van buildvervanging dekt, dus het veiligst is om je testgroep stabiel te houden terwijl je midden in de test een herbouwde, 16 KB-conforme bundle uitrolt. PrimeTestLab levert 12 echte testers op echte apparaten vanaf $19.99, plus 5% servicekosten, en houdt de groep de volle 14 dagen vast.

      Kort samengevat

      Samenvatting

      Google Play verplicht apps met Android 15 (API-niveau 35) of hoger als doel om geheugenpagina's van 16 KB te ondersteunen op 64-bits apparaten, en vanaf 1 februari 2027 kun je updates die daar niet aan voldoen niet meer uitbrengen. 1 november 2025 en 31 mei 2026 zijn dode data die nog steeds hoog scoren. Apps in puur Java of Kotlin voldoen al. Alle andere doorlopen dezelfde drie stappen: benoem de .so die faalt, update het pakket dat hem meelevert, en bewijs het artefact met twee losstaande controles, namelijk elk ELF-LOAD-segment op 2**14 of hoger, en de bundle die PAGE_ALIGNMENT_16K rapporteert. AGP 8.5.1+ met NDK r28+ is de veiligste standaardtoolchain, en geen van beide repareert een binary die iemand anders heeft gecompileerd. Valt dit midden in een gesloten test, dan is de testerkant het deel dat je kunt uitbesteden. Bekijk de pakketten →

      Wat op deze pagina het eerst veroudert

      • De datum 1 februari 2027. Google heeft deze tijdlijn al meer dan eens verschoven. Controleer het stempel "Last updated" onderaan de paginagroottegids voordat je een release eromheen plant.
      • De teksten in Play Console. De teksten en de navigatie in de Console veranderen los van de beleidspagina's, dus de koppen die jij ziet kunnen afwijken van de koppen die hier zijn nagebouwd.
      • De versiegrenzen per framework. Flutter brengt vaak stabiele releases uit, het ondersteuningsbeleid van React Native verandert mee, en wie recht heeft op Unity LTS verschuift. Controleer het tegen de actuele releasenotes en niet tegen een versienummer dat in een artikel staat.
      • De index met gemelde libraries. Elk pakket kan in elke release een native binary toevoegen, vervangen of laten verslechteren. Controleer altijd het artefact in je eigen bundle.
      • De namen van emulatorimages. Images met het label experimenteel kunnen worden hernoemd of promotie krijgen, dus de exacte tekst in SDK Manager kan afwijken.

      Gecontroleerd tegen de documentatie van Google op 9 augustus 2026. Wordt maandelijks herzien tot minstens een maand na de handhaving.

      Kefayatullah Khadem - Software engineer en specialist Google Play-publicatie

      Geschreven door

      Kefayatullah Khadem

      Software engineer en specialist Google Play-publicatie

      Kefayatullah Khadem is software engineer met ruim acht jaar ervaring in het bouwen van schaalbare applicaties. Bij PrimeTestLab helpt hij ontwikkelaars door de testvereisten van de gesloten test van Google Play en langs de publicatieblokkades waar de meesten op vastlopen. Inmiddels begeleidde hij ruim 7.400 Android-apps naar productietoegang, in 120+ landen, met een slagingspercentage van 99,9%. Daarnaast schrijft hij over het beleid van Google Play, buildvereisten en het traject van de gesloten test.

      7.400+ Apps getest
      99,9% Slagingspercentage
      120+ Landen
      4.9/5 Beoordeling

      99,9% slagingspercentage

      Jij fikst de build. Wij houden de testers vast.

      Jij bouwt de native libraries opnieuw. Wij leveren 12 echte testers die de volle 14 dagen aangemeld blijven terwijl je daarmee bezig bent.

      Vanaf $19.99, plus 5% servicekosten

      Testen start binnen 4-6 uur · 120+ landen · Gratis hertest of volledige terugbetaling

      Sluit je aan bij ruim 7.400 ontwikkelaars die hun app met PrimeTestLab hebben gelanceerd

      12 testers · $19.99 WhatsApp