mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-04-22 02:42:13 +00:00
Fix: R8 exclusion of serializables
This commit is contained in:
parent
0df16343db
commit
bb2a05d1e5
27
proguard.pro
vendored
27
proguard.pro
vendored
@ -3,3 +3,30 @@
|
||||
# Disable ServiceLoader reproducibility-breaking optimizations
|
||||
-keep class kotlinx.coroutines.CoroutineExceptionHandler
|
||||
-keep class kotlinx.coroutines.internal.MainDispatcherFactory
|
||||
|
||||
# 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
|
Loading…
x
Reference in New Issue
Block a user