diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 9920890..b66ac4f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -69,7 +69,20 @@ android { // Le test de migration lit les schémas que le compilateur Room // exporte. Le chemin est passé en clair plutôt que déduit d'un // répertoire de travail dont rien ne garantit lequel il est. - all { test -> test.systemProperty("waveflow.schemas", "$projectDir/schemas") } + all { test -> + test.systemProperty("waveflow.schemas", "$projectDir/schemas") + + // Robolectric monte l'application en passant par + // `ApplicationSharedMemory`, apparu avec Android 16 — le + // `targetSdk` 36 qu'il simule. Cet appel manipule les entrailles + // d'un descripteur de fichier via `jdk.internal.access`, que le + // JDK ne laisse plus atteindre sans y être autorisé. + // + // Sans cette ligne, *tous* les tests Robolectric tombent avant + // d'avoir commencé : « Failed to interact with raw FileDescriptor + // internals; perhaps JRE has changed? ». + test.jvmArgs("--add-exports=java.base/jdk.internal.access=ALL-UNNAMED") + } } } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 12b3db9..090c069 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -4,16 +4,16 @@ coreKtx = "1.19.0" junit = "4.13.2" lifecycle = "2.11.0" activityCompose = "1.13.0" -kotlin = "2.4.10" -composeBom = "2026.08.00" +kotlin = "2.4.20" +composeBom = "2026.09.00" media3 = "1.11.0" coil = "2.7.0" palette = "1.0.0" -navigationCompose = "2.10.0" -room = "2.8.4" -ksp = "2.3.11" +navigationCompose = "2.10.1" +room = "2.8.5" +ksp = "2.3.12" coroutinesTest = "1.11.0" -robolectric = "4.16.1" +robolectric = "4.17" androidxTestCore = "1.7.0" okhttp = "5.5.0" serialization = "1.11.0"