summaryrefslogtreecommitdiffstats
path: root/platform/android/java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/java')
-rw-r--r--platform/android/java/app/build.gradle8
-rw-r--r--platform/android/java/app/config.gradle23
2 files changed, 31 insertions, 0 deletions
diff --git a/platform/android/java/app/build.gradle b/platform/android/java/app/build.gradle
index f084c60209..7797f4bc9d 100644
--- a/platform/android/java/app/build.gradle
+++ b/platform/android/java/app/build.gradle
@@ -116,6 +116,14 @@ android {
if (shouldNotStrip()) {
doNotStrip '**/*.so'
}
+
+ jniLibs {
+ // Setting this to true causes AGP to package compressed native libraries when building the app
+ // For more background, see:
+ // - https://developer.android.com/build/releases/past-releases/agp-3-6-0-release-notes#extractNativeLibs
+ // - https://stackoverflow.com/a/44704840
+ useLegacyPackaging shouldUseLegacyPackaging()
+ }
}
signingConfigs {
diff --git a/platform/android/java/app/config.gradle b/platform/android/java/app/config.gradle
index 7224765f28..f2c4a5d1b6 100644
--- a/platform/android/java/app/config.gradle
+++ b/platform/android/java/app/config.gradle
@@ -361,3 +361,26 @@ ext.shouldSign = { ->
ext.shouldNotStrip = { ->
return isAndroidStudio() || project.hasProperty("doNotStrip")
}
+
+/**
+ * Whether to use the legacy convention of compressing all .so files in the APK.
+ *
+ * For more background, see:
+ * - https://developer.android.com/build/releases/past-releases/agp-3-6-0-release-notes#extractNativeLibs
+ * - https://stackoverflow.com/a/44704840
+ */
+ext.shouldUseLegacyPackaging = { ->
+ int minSdk = getExportMinSdkVersion()
+ if (minSdk < 23) {
+ // Enforce the default behavior for compatibility with device running api < 23
+ return true
+ }
+
+ String legacyPackagingFlag = project.hasProperty("compress_native_libraries") ? project.property("compress_native_libraries") : ""
+ if (legacyPackagingFlag != null && !legacyPackagingFlag.isEmpty()) {
+ return Boolean.parseBoolean(legacyPackagingFlag)
+ }
+
+ // Default behavior for minSdk >= 23
+ return false
+}