diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 62afd8522..9f3837eb7 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -3,10 +3,11 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ +import com.android.build.api.dsl.ApplicationExtension + plugins { alias(libs.plugins.android.application) - alias(libs.plugins.jetbrains.kotlin.android) - alias(libs.plugins.jetbrains.kotlin.kapt) + alias(libs.plugins.android.legacy.kapt) alias(libs.plugins.google.ksp) alias(libs.plugins.jetbrains.kotlin.parcelize) alias(libs.plugins.sonarqube) @@ -32,7 +33,7 @@ kotlin { } } -android { +configure { compileSdk = 36 namespace = "org.schabi.newpipe" @@ -78,7 +79,10 @@ android { } isMinifyEnabled = true isShrinkResources = false // disabled to fix F-Droid"s reproducible build - proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro") + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) } } @@ -100,7 +104,7 @@ android { sourceSets { getByName("androidTest") { - assets.srcDir("$projectDir/schemas") + assets.directories += "$projectDir/schemas" } } @@ -111,6 +115,7 @@ android { buildFeatures { viewBinding = true buildConfig = true + resValues = true } packaging { diff --git a/build.gradle.kts b/build.gradle.kts index 2c9173f57..eeb640af3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,10 +3,16 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ +buildscript { + dependencies { + // https://developer.android.com/build/releases/agp-9-0-0-release-notes#runtime-dependency-on-kotlin-gradle-plugin-upgrade + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${libs.versions.kotlin.get()}") + } +} + plugins { alias(libs.plugins.android.application) apply false - alias(libs.plugins.jetbrains.kotlin.android) apply false - alias(libs.plugins.jetbrains.kotlin.kapt) apply false + alias(libs.plugins.android.legacy.kapt) apply false alias(libs.plugins.google.ksp) apply false alias(libs.plugins.jetbrains.kotlin.parcelize) apply false alias(libs.plugins.sonarqube) apply false diff --git a/gradle.properties b/gradle.properties index 01e1aa01f..edfb90d9f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,9 +1,9 @@ -android.enableJetifier=false android.nonFinalResIds=false -android.nonTransitiveRClass=true -android.useAndroidX=true org.gradle.jvmargs=-Xmx2048M --add-opens jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED systemProp.file.encoding=utf-8 # https://docs.gradle.org/current/userguide/configuration_cache.html org.gradle.configuration-cache=true +android.enableAppCompileTimeRClass=false +android.r8.strictFullModeForKeepRules=false +android.r8.optimizedResourceShrinking=false diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5448848a2..d5b38e519 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,7 +5,7 @@ [versions] acra = "5.13.1" -agp = "8.13.2" +agp = "9.0.0" appcompat = "1.7.1" assertj = "3.27.6" autoservice-google = "1.1.1" @@ -23,8 +23,8 @@ groupie = "2.10.1" jsoup = "1.22.1" junit = "4.13.2" junit-ext = "1.3.0" -kotlin = "2.2.21" -ksp = "2.3.4" +kotlin = "2.3.0" +ksp = "2.3.5" ktlint = "1.8.0" leakcanary = "2.14" lifecycle = "2.9.4" # Newer versions require minSdk >= 23 @@ -132,8 +132,7 @@ zacsweers-autoservice-compiler = { module = "dev.zacsweers.autoservice:auto-serv [plugins] android-application = { id = "com.android.application", version.ref = "agp" } +android-legacy-kapt = { id = "com.android.legacy-kapt", version.ref = "agp" } # Needed for statesaver google-ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } -jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } -jetbrains-kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" } # Needed for statesaver jetbrains-kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" } sonarqube = { id = "org.sonarqube", version.ref = "sonarqube" }