From c469d9be81cc18d7bc297ac2591ae3c2c5825eb9 Mon Sep 17 00:00:00 2001 From: locphamtran Date: Wed, 16 Sep 2026 18:54:49 +0700 Subject: [PATCH] Let R8 optimize the release dex, not just shrink it --- android/app/build.gradle | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 2ed88a3..00d3f49 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -148,7 +148,10 @@ android { def enableShrinkResources = findProperty('android.enableShrinkResourcesInReleaseBuilds') ?: 'false' shrinkResources enableShrinkResources.toBoolean() minifyEnabled enableMinifyInReleaseBuilds - proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" + // ponytail: proguard-android.txt carries -dontoptimize, which is what + // Play flags as unoptimized code. The -optimize file drops it; R8's + // optimizer + keep rules from the RN/Expo AARs carry the rest. + proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" def enablePngCrunchInRelease = findProperty('android.enablePngCrunchInReleaseBuilds') ?: 'true' crunchPngs enablePngCrunchInRelease.toBoolean() }