From 92c498cf7be52fcc0039fc0af9426718353a1c32 Mon Sep 17 00:00:00 2001 From: Ayaan Zaidi Date: Sun, 5 Apr 2026 13:44:27 +0530 Subject: [PATCH] build(android): fix flavored release bundle prep --- apps/android/app/build.gradle.kts | 74 +++++++++++++++++-------------- 1 file changed, 41 insertions(+), 33 deletions(-) diff --git a/apps/android/app/build.gradle.kts b/apps/android/app/build.gradle.kts index e74c4c08938..7253aea364c 100644 --- a/apps/android/app/build.gradle.kts +++ b/apps/android/app/build.gradle.kts @@ -65,8 +65,8 @@ android { applicationId = "ai.openclaw.app" minSdk = 31 targetSdk = 36 - versionCode = 2026040401 - versionName = "2026.4.4" + versionCode = 2026040501 + versionName = "2026.4.5" ndk { // Support all major ABIs — native libs are tiny (~47 KB per ABI) abiFilters += listOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64") @@ -239,44 +239,52 @@ tasks.withType().configureEach { useJUnitPlatform() } -val stripReleaseDnsjavaServiceDescriptor = - tasks.register("stripReleaseDnsjavaServiceDescriptor") { +androidComponents { + onVariants(selector().withBuildType("release")) { variant -> + val variantName = variant.name + val variantNameCapitalized = variantName.replaceFirstChar(Char::titlecase) + val stripTaskName = "strip${variantNameCapitalized}DnsjavaServiceDescriptor" + val mergeTaskName = "merge${variantNameCapitalized}JavaResource" + val minifyTaskName = "minify${variantNameCapitalized}WithR8" val mergedJar = layout.buildDirectory.file( - "intermediates/merged_java_res/release/mergeReleaseJavaResource/base.jar", + "intermediates/merged_java_res/$variantName/$mergeTaskName/base.jar", ) - inputs.file(mergedJar) - outputs.file(mergedJar) + val stripTask = + tasks.register(stripTaskName) { + inputs.file(mergedJar) + outputs.file(mergedJar) - doLast { - val jarFile = mergedJar.get().asFile - if (!jarFile.exists()) { - return@doLast + doLast { + val jarFile = mergedJar.get().asFile + if (!jarFile.exists()) { + return@doLast + } + + val unpackDir = temporaryDir.resolve("merged-java-res") + delete(unpackDir) + copy { + from(zipTree(jarFile)) + into(unpackDir) + exclude(dnsjavaInetAddressResolverService) + } + delete(jarFile) + ant.invokeMethod( + "zip", + mapOf( + "destfile" to jarFile.absolutePath, + "basedir" to unpackDir.absolutePath, + ), + ) + } } - val unpackDir = temporaryDir.resolve("merged-java-res") - delete(unpackDir) - copy { - from(zipTree(jarFile)) - into(unpackDir) - exclude(dnsjavaInetAddressResolverService) - } - delete(jarFile) - ant.invokeMethod( - "zip", - mapOf( - "destfile" to jarFile.absolutePath, - "basedir" to unpackDir.absolutePath, - ), - ) + tasks.matching { it.name == mergeTaskName }.configureEach { + finalizedBy(stripTask) + } + tasks.matching { it.name == minifyTaskName }.configureEach { + dependsOn(stripTask) } } - -tasks.matching { it.name == "stripReleaseDnsjavaServiceDescriptor" }.configureEach { - dependsOn("mergeReleaseJavaResource") -} - -tasks.matching { it.name == "minifyReleaseWithR8" }.configureEach { - dependsOn(stripReleaseDnsjavaServiceDescriptor) }