From 514ae8c637688fcd9c4cab3f6153a0a3feddab36 Mon Sep 17 00:00:00 2001 From: Rodion Date: Mon, 17 Feb 2025 14:40:38 +0300 Subject: [PATCH 1/3] Fix NotSuchMethodError with agp 8.8.0 --- gradle/libs.versions.toml | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- .../kotlin/io/deepmedia/tools/grease/GreasePlugin.kt | 12 +++++++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ca28f45..6a952b2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -agp = "8.1.4" +agp = "8.8.1" apache-ant = "1.10.14" asm-commons = "9.6" android-tools = "31.1.4" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 8838ba9..79eb9d0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/grease/src/main/kotlin/io/deepmedia/tools/grease/GreasePlugin.kt b/grease/src/main/kotlin/io/deepmedia/tools/grease/GreasePlugin.kt index 3bbf899..c8d3f28 100644 --- a/grease/src/main/kotlin/io/deepmedia/tools/grease/GreasePlugin.kt +++ b/grease/src/main/kotlin/io/deepmedia/tools/grease/GreasePlugin.kt @@ -32,11 +32,13 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.artifacts.Configuration +import org.gradle.api.file.FileCollection import org.gradle.api.publish.maven.internal.publication.DefaultMavenPublication import org.gradle.api.publish.maven.tasks.PublishToMavenRepository import org.gradle.kotlin.dsl.support.unzipTo import org.gradle.kotlin.dsl.support.zipTo import java.io.File +import kotlin.reflect.full.functions /** * Adds grease configurations for bundling dependencies in AAR files. @@ -239,7 +241,15 @@ open class GreasePlugin : Plugin { } } - val files = projectNativeLibs.get().files().files + localJarsNativeLibs?.files.orEmpty() + // In agp 8.8.0 return type of `localJarsNativeLibs` property was changed + // So its starts to throw `NoSuchMethodError` when we applied older version of agp + // To prevent that we simply find this function by reflection, call it + // and casting result to proper type + fun LibraryJniLibsTask.localJarsNativeLibs() = this::class.functions + .find { it.name == "localJarsNativeLibs" } + ?.let { it.call() as? FileCollection } + + val files = projectNativeLibs.get().files().files + localJarsNativeLibs()?.files.orEmpty() if (files.isNotEmpty()) { doLast { injectJniLibs() } } else { From 55354e7877485e33b8aee1cfb9c3a771008cc994 Mon Sep 17 00:00:00 2001 From: Rodion Date: Mon, 17 Feb 2025 15:50:07 +0300 Subject: [PATCH 2/3] Revert agp version to 8.1.4 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6a952b2..ca28f45 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -agp = "8.8.1" +agp = "8.1.4" apache-ant = "1.10.14" asm-commons = "9.6" android-tools = "31.1.4" From 413b0f265ac128a88458c7c81d67da6b7570da3d Mon Sep 17 00:00:00 2001 From: Rodion Date: Mon, 17 Feb 2025 17:12:24 +0300 Subject: [PATCH 3/3] Revert gradle wrapper version to 8.4 --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 79eb9d0..8838ba9 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME