7 lines
2.4 KiB
Markdown
7 lines
2.4 KiB
Markdown
---
|
|
title: tablet-app : dix crans d'outillage Android rattrapés
|
|
---
|
|
<span>Le premier vrai build depuis des mois. Chaque erreur dictait le correctif suivant : Gradle <strong>7.5 → 8.11.1</strong> (le plugin Kotlin exigeait ≥ 7.6.3), AGP <strong>7.2.0 → 8.5.0</strong> puis <strong>8.7.3</strong> (minimum Flutter) puis <strong>8.9.1</strong> (réclamé par <code>androidx.browser</code> et <code>core-ktx</code>), suppression de <code>android.bundle.enableUncompressedNativeLibs</code> (retirée en AGP 8.1), <code>jcenter()</code> → <code>mavenCentral()</code> (arrêté depuis 2021), <code>jvmargs</code> <strong>1536M → 4096M</strong> et <code>enableJetifier</code> <strong>true → false</strong> (Jetifier ne sert plus à rien depuis qu'AndroidX est partout, et c'est lui qui saturait la heap), et Kotlin <strong>1.9.0 → 2.3.10</strong> (les dépendances tirent <code>kotlin-stdlib 2.3.10</code>, métadonnées incompatibles avec un compilateur 2.0).</span>
|
|
<span>⚠️ <strong>Le cran le plus instructif</strong> : un <code>resolutionStrategy</code> forçait <code>androidx.lifecycle</code> en <strong>2.4.0</strong> avec le commentaire « To fix mapbox issue ». Il réglait un problème mapbox d'il y a trois ans et <strong>causait</strong> celui d'aujourd'hui — <code>mapbox_maps_flutter</code> 2.21.1 appelle <code>setViewTreeLifecycleOwner</code>, absent de 2.4.0. Retiré, avec un commentaire pour qu'on ne le remette pas. ⚠️ Et un <strong>bloc <code>buildscript</code> entièrement commenté</strong> déclarait AGP 8.5.0/Kotlin 2.0.10 pendant que la vraie config vivait dans <code>settings.gradle</code> en 7.2.0/1.9.0 : il a fait conclure deux fois à une configuration qui n'était pas celle du build — supprimé. <strong>Troisième piège « bloc commenté »</strong> du projet.</span>
|
|
<span><strong>Trois de ces crans sont des alignements sur <code>mymuseum-visitapp</code></strong>, qui utilise le même plugin mapbox sans rencontrer aucun de ces problèmes. Réflexe à garder : comparer les deux <code>gradle.properties</code> et les deux <code>build.gradle</code> avant de chercher. Ce que ça débloque : <code>compileSdkVersion 36</code>, sans lequel plus aucune mise à jour n'est publiable sur le store. ⚠️ Le compte de « six crans » annoncé plus tôt dans la journée était provisoire — il datait du moment où la chaîne Gradle passait, avant que la compilation Kotlin ne révèle la suite.</span>
|