From 827f7a151aa2e944e6657f20d71ebe0a0d784b46 Mon Sep 17 00:00:00 2001 From: Nino van Hooff Date: Fri, 3 Apr 2026 11:53:08 +0200 Subject: [PATCH 1/6] ADD gradle toolchains --- .idea/gradle.xml | 2 -- gradle/gradle-daemon-jvm.properties | 12 ++++++++++++ settings.gradle | 3 +++ 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 gradle/gradle-daemon-jvm.properties diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 58942db1..4be908b8 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -6,7 +6,6 @@ - diff --git a/gradle/gradle-daemon-jvm.properties b/gradle/gradle-daemon-jvm.properties new file mode 100644 index 00000000..bb8e3f7b --- /dev/null +++ b/gradle/gradle-daemon-jvm.properties @@ -0,0 +1,12 @@ +#This file is generated by updateDaemonJvm +toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/ec393a8d1f984107f9ae6ce8f45a661f/redirect +toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/2e70db4a6fa54a1270e3a3d74da52fcc/redirect +toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/ec393a8d1f984107f9ae6ce8f45a661f/redirect +toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/2e70db4a6fa54a1270e3a3d74da52fcc/redirect +toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/b30866b18394d55c95dc662594302c0a/redirect +toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/88dd3a3df8e2336eb284d6b9b6b98d9c/redirect +toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/ec393a8d1f984107f9ae6ce8f45a661f/redirect +toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/2e70db4a6fa54a1270e3a3d74da52fcc/redirect +toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/1c2ee0010b0528b7376f108f13ea45c3/redirect +toolchainVendor=AMAZON +toolchainVersion=21 diff --git a/settings.gradle b/settings.gradle index ce487cad..65f4511c 100644 --- a/settings.gradle +++ b/settings.gradle @@ -5,6 +5,9 @@ pluginManagement { gradlePluginPortal() } } +plugins { + id 'org.gradle.toolchains.foojay-resolver-convention' version '0.10.0' +} dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { From 5de046008adda3e338ef510562dc9974569aceaa Mon Sep 17 00:00:00 2001 From: Nino van Hooff Date: Fri, 3 Apr 2026 11:53:41 +0200 Subject: [PATCH 2/6] CHANGE AGP to 8.13.2 and kotlin to 2.3.20 --- gradle/libs.versions.toml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9403af53..0b17b40c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,9 +1,8 @@ [versions] jvmTarget = "21" kermit = "2.0.8" -kotlin = "2.2.20" -# should match kotlin https://github.com/google/ksp/releases -gradlePlugin = "8.11.2" +kotlin = "2.3.20" +gradlePlugin = "8.13.2" googleServices = "4.4.4" crashlyticsPlugin = "3.0.6" firebaseBOM = "34.4.0" From 7fa9cdf6b40e5bdfa33f45c56ae66e434a85d99c Mon Sep 17 00:00:00 2001 From: Nino van Hooff Date: Fri, 3 Apr 2026 12:00:43 +0200 Subject: [PATCH 3/6] CHANGE AGP to 9.1.0 and Gradle to 9.3.1 Using Android Studio's AGP upgrade assistant --- gradle.properties | 12 +++++++++++- gradle/libs.versions.toml | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/gradle.properties b/gradle.properties index 0b4df693..50ba3850 100644 --- a/gradle.properties +++ b/gradle.properties @@ -20,4 +20,14 @@ kotlin.code.style=official # Enables namespacing of each library's R class so that its R class includes only the # resources declared in the library itself and none from the library's dependencies, # thereby reducing the size of the R class for that library -android.nonTransitiveRClass=true \ No newline at end of file +android.nonTransitiveRClass=true +android.defaults.buildfeatures.resvalues=true +android.sdk.defaultTargetSdkToCompileSdkIfUnset=false +android.enableAppCompileTimeRClass=false +android.usesSdkInManifest.disallowed=false +android.uniquePackageNames=false +android.dependency.useConstraints=true +android.r8.strictFullModeForKeepRules=false +android.r8.optimizedResourceShrinking=false +android.builtInKotlin=false +android.newDsl=false \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0b17b40c..b84925a0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,7 +2,7 @@ jvmTarget = "21" kermit = "2.0.8" kotlin = "2.3.20" -gradlePlugin = "8.13.2" +gradlePlugin = "9.1.0" googleServices = "4.4.4" crashlyticsPlugin = "3.0.6" firebaseBOM = "34.4.0" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 016721de..fdcb6183 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Thu Jan 26 10:33:34 CET 2023 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 49db99d6b5310f83b1f49f6f4231b6b0ca5b3dd1 Mon Sep 17 00:00:00 2001 From: Nino van Hooff Date: Fri, 3 Apr 2026 12:16:46 +0200 Subject: [PATCH 4/6] REMOVE properties from gradle.properties that are not required Using Android Studio's AGP upgrade assistant --- gradle.properties | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/gradle.properties b/gradle.properties index 50ba3850..ae8abce8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,6 +4,7 @@ # any settings specified in this file. # For more details on how to configure your build environment visit # http://www.gradle.org/docs/current/userguide/build_environment.html + # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. org.gradle.jvmargs=-Xmx4g -Dfile.encoding=UTF-8 @@ -15,19 +16,25 @@ org.gradle.jvmargs=-Xmx4g -Dfile.encoding=UTF-8 # Android operating system, and which are packaged with your app's APK # https://developer.android.com/topic/libraries/support-library/androidx-rn android.useAndroidX=true + # Kotlin code style for this project: "official" or "obsolete": kotlin.code.style=official + # Enables namespacing of each library's R class so that its R class includes only the # resources declared in the library itself and none from the library's dependencies, # thereby reducing the size of the R class for that library android.nonTransitiveRClass=true -android.defaults.buildfeatures.resvalues=true -android.sdk.defaultTargetSdkToCompileSdkIfUnset=false -android.enableAppCompileTimeRClass=false -android.usesSdkInManifest.disallowed=false -android.uniquePackageNames=false + +# AGP 9.x enables compile-time R class for app modules by default; keeping false preserves existing build behavior. +#android.enableAppCompileTimeRClass=false + +# Enables improved dependency version constraint resolution introduced in AGP 9.x. android.dependency.useConstraints=true +# AGP 9.x enables R8 strict full mode by default; keeping false avoids failures from non-conforming third-party keep rules. android.r8.strictFullModeForKeepRules=false -android.r8.optimizedResourceShrinking=false + +# Kotlin is applied via the kotlin-android plugin; must be false to avoid conflicts with AGP's built-in Kotlin support. android.builtInKotlin=false + +# Project uses Groovy DSL; enabling the new DSL would break existing build scripts. android.newDsl=false \ No newline at end of file From 9759a02dcab9df0a13d82b7578e8d016f1fd4044 Mon Sep 17 00:00:00 2001 From: Nino van Hooff Date: Fri, 3 Apr 2026 12:23:31 +0200 Subject: [PATCH 5/6] REMOVE kotlin-android plugin and use builtin-kotlin --- build.dep.compose.gradle | 2 -- build.gradle | 1 - build.module.feature-and-app.gradle | 2 -- build.module.library.gradle | 2 -- gradle.properties | 2 -- gradle/libs.versions.toml | 1 - 6 files changed, 10 deletions(-) diff --git a/build.dep.compose.gradle b/build.dep.compose.gradle index 69f1fb54..c0ffca10 100644 --- a/build.dep.compose.gradle +++ b/build.dep.compose.gradle @@ -1,5 +1,3 @@ -apply plugin: 'kotlin-android' - android { buildFeatures { compose = true diff --git a/build.gradle b/build.gradle index de0be2e8..92871faf 100644 --- a/build.gradle +++ b/build.gradle @@ -14,7 +14,6 @@ buildscript { plugins { // sets class paths only (because of 'apply false') alias libs.plugins.androidApplication apply false alias libs.plugins.androidLibrary apply false - alias libs.plugins.jetbrainsKotlinAndroid apply false alias libs.plugins.kotlinSerialization apply false alias libs.plugins.googleServices apply false alias libs.plugins.firebaseCrashlyticsPlugin apply false diff --git a/build.module.feature-and-app.gradle b/build.module.feature-and-app.gradle index 715feed4..4d997b7b 100644 --- a/build.module.feature-and-app.gradle +++ b/build.module.feature-and-app.gradle @@ -1,5 +1,3 @@ -apply plugin: 'kotlin-android' - apply from: "$rootDir/build.config.jvm.gradle" apply from: "$rootDir/build.dep.di.gradle" apply from: "$rootDir/build.dep.compose.gradle" diff --git a/build.module.library.gradle b/build.module.library.gradle index b6d69143..e2d49b9e 100644 --- a/build.module.library.gradle +++ b/build.module.library.gradle @@ -1,5 +1,3 @@ -apply plugin: 'kotlin-android' - apply from: "$rootDir/build.config.jvm.gradle" apply from: "$rootDir/build.dep.di.gradle" diff --git a/gradle.properties b/gradle.properties index ae8abce8..d9c92f88 100644 --- a/gradle.properties +++ b/gradle.properties @@ -33,8 +33,6 @@ android.dependency.useConstraints=true # AGP 9.x enables R8 strict full mode by default; keeping false avoids failures from non-conforming third-party keep rules. android.r8.strictFullModeForKeepRules=false -# Kotlin is applied via the kotlin-android plugin; must be false to avoid conflicts with AGP's built-in Kotlin support. -android.builtInKotlin=false # Project uses Groovy DSL; enabling the new DSL would break existing build scripts. android.newDsl=false \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b84925a0..223cfef2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,6 @@ plugin-licensee = { module = "app.cash.licensee:licensee-gradle-plugin", version androidApplication = { id = "com.android.application", version.ref = "gradlePlugin" } androidLibrary = { id = "com.android.library", version.ref = "gradlePlugin" } kotlinSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } -jetbrainsKotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } googleServices = { id = "com.google.gms.google-services", version.ref = "googleServices" } firebaseCrashlyticsPlugin = { id = "com.google.firebase.crashlytics", version.ref = "crashlyticsPlugin" } compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } From b2aa3fd06269a53ede6f3355c898ca6f94f78cba Mon Sep 17 00:00:00 2001 From: Nino van Hooff Date: Fri, 3 Apr 2026 12:29:32 +0200 Subject: [PATCH 6/6] CHANGE gradle.properties to suppress a useless warning --- gradle.properties | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gradle.properties b/gradle.properties index d9c92f88..fe0b775b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -30,9 +30,14 @@ android.nonTransitiveRClass=true # Enables improved dependency version constraint resolution introduced in AGP 9.x. android.dependency.useConstraints=true + # AGP 9.x enables R8 strict full mode by default; keeping false avoids failures from non-conforming third-party keep rules. android.r8.strictFullModeForKeepRules=false +# android.dependency.excludeLibraryComponentsFromConstraints is DEPRECATED and will be removed in AGP 10.0.0 +# omitting it however, would cause AGP 9.x to output a warning +# to supress that warning, we set android.generateSyncIssueWhenLibraryConstraintsAreEnabled to false +android.generateSyncIssueWhenLibraryConstraintsAreEnabled=false # Project uses Groovy DSL; enabling the new DSL would break existing build scripts. android.newDsl=false \ No newline at end of file