diff options
| author | Charles Lombardo <clombardo169@gmail.com> | 2023-06-11 17:02:36 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-06-11 17:02:36 -0400 |
| commit | 157deb586430f2547b9002adbbf8bf91bcb1ace1 (patch) | |
| tree | e706b65777e5a24520fd0004438b3b857c18057d /Source/Android | |
| parent | 8db5775a1bfbeb09fc06870501a424331b8dfdae (diff) | |
| parent | 6f55b26751163b0698af220918b9324d1c437989 (diff) | |
Merge pull request #11928 from K0bin/adrenotools-release-build-fix
Android: Fix Adrenotools in release builds
Diffstat (limited to 'Source/Android')
| -rw-r--r-- | Source/Android/app/build.gradle | 4 | ||||
| -rw-r--r-- | Source/Android/app/proguard-rules.pro | 40 |
2 files changed, 44 insertions, 0 deletions
diff --git a/Source/Android/app/build.gradle b/Source/Android/app/build.gradle index 3ad867b2a6..c9c9942f88 100644 --- a/Source/Android/app/build.gradle +++ b/Source/Android/app/build.gradle @@ -128,6 +128,10 @@ android { } } } + + packagingOptions { + jniLibs.useLegacyPackaging = true + } } dependencies { diff --git a/Source/Android/app/proguard-rules.pro b/Source/Android/app/proguard-rules.pro index 985cc25961..5ed4a21dce 100644 --- a/Source/Android/app/proguard-rules.pro +++ b/Source/Android/app/proguard-rules.pro @@ -1,3 +1,43 @@ # Being able to get sensible stack traces from users is more important # than the space savings obfuscation could give us -dontobfuscate + +# +# Kotlin Serialization +# + +# Keep `Companion` object fields of serializable classes. +# This avoids serializer lookup through `getDeclaredClasses` as done for named companion objects. +-if @kotlinx.serialization.Serializable class ** +-keepclassmembers class <1> { + static <1>$Companion Companion; +} + +# Keep `serializer()` on companion objects (both default and named) of serializable classes. +-if @kotlinx.serialization.Serializable class ** { + static **$* *; +} +-keepclassmembers class <2>$<3> { + kotlinx.serialization.KSerializer serializer(...); +} + +# Keep `INSTANCE.serializer()` of serializable objects. +-if @kotlinx.serialization.Serializable class ** { + public static ** INSTANCE; +} +-keepclassmembers class <1> { + public static <1> INSTANCE; + kotlinx.serialization.KSerializer serializer(...); +} + +# @Serializable and @Polymorphic are used at runtime for polymorphic serialization. +-keepattributes RuntimeVisibleAnnotations,AnnotationDefault + +# Don't print notes about potential mistakes or omissions in the configuration for kotlinx-serialization classes +# See also https://github.com/Kotlin/kotlinx.serialization/issues/1900 +-dontnote kotlinx.serialization.** + +# Serialization core uses `java.lang.ClassValue` for caching inside these specified classes. +# If there is no `java.lang.ClassValue` (for example, in Android), then R8/ProGuard will print a warning. +# However, since in this case they will not be used, we can disable these warnings +-dontwarn kotlinx.serialization.internal.ClassValueReferences |
