Google Play : pages mémoire de 16 Ko
Les bibliothèques natives doivent être alignées sur des pages de 16 Ko ; les mises à jour qui ne le sont pas ne pourront plus être publiées à partir du 1er février 2027.
Qu'exige Google Play ?
Toute app qui cible Android 15 ou une version ultérieure et contient du code natif doit prendre en charge les appareils dont les pages mémoire font 16 Ko. Google a fixé cette règle pour les nouvelles apps et les mises à jour à partir du 1er novembre 2025, et sa page pour les développeurs indique désormais qu'à partir du 1er février 2027, une mise à jour sans prise en charge des 16 Ko ne pourra pas être publiée. Les apps écrites uniquement en Java ou en Kotlin sont compatibles par défaut. Une app Flutter ne l'est jamais uniquement : le moteur et le code Dart compilé sont des bibliothèques natives.
D'où cela vient dans une app Flutter
Le moteur Flutter n'est pas en cause : libflutter.so est compilé avec un alignement compatible avec les 16 Ko depuis Flutter 3.16. La bibliothèque non alignée arrive presque toujours avec un plugin ou un SDK qui embarque des fichiers .so précompilés, ou vient d'un Android Gradle plugin ou d'un NDK ancien dans le projet. Un cas confirmé : shared_preferences_android 2.4.20 a introduit AndroidX DataStore 1.2.0, dont la bibliothèque native échouait à la vérification, et la 2.4.21 est revenue en arrière. Les projets créés avec d'anciennes versions de Flutter conservent aussi l'Android Gradle plugin avec lequel ils ont été générés, et avant la version 8.5.1, celui-ci n'empaquette pas les bibliothèques avec un alignement de 16 Ko.
Comment corriger
- Lancez la vérification gratuite du build sur le .apk ou le .aab. Elle nomme chaque bibliothèque native qui n'est pas alignée sur 16 Ko.
- Trouvez le plugin qui embarque cette bibliothèque (./gradlew app:dependencies, ou le dossier android du plugin) et mettez-le à jour. S'il n'existe pas de version corrigée, remplacez le plugin.
- Vérifiez que
android/settings.gradle(.kts) utilise l'Android Gradle plugin 8.5.1 ou plus récent. - Si le projet compile son propre code C ou C++, utilisez le NDK r28 ou plus récent. Flutter 3.38 en fait la version par défaut ; sur les versions antérieures, définissez
ndkVersiondansandroid/app/build.gradle(.kts). - Lancez
flutter clean, recompilez, puis vérifiez l'APK aveczipalign -c -P 16 -v 4.
La vérification gratuite du build lit votre .apk ou .aab dans le navigateur et indique si cette exigence concerne votre build, sans rien envoyer.
Ou faites vérifier le build entier : l'audit de conformité aux stores coûte 190 €, en 2 jours ouvrés.