Application Crashes because of DataStore preference when minifyEnabled is set to true

173 Views Asked by At

I'm using

implementation "androidx.datastore:datastore-preferences:1.0.0"

implementation "androidx.datastore:datastore-core:1.0.0"

But when I added in my release config

minifyEnabled true

I'm getting following runtime error

java.lang.AssertionError
       at androidx.datastore.preferences.protobuf.UnsafeUtil$MemoryAccessor.arrayBaseOffset(Unknown Source:7)
       at androidx.datastore.preferences.protobuf.UnsafeUtil.arrayBaseOffset(Unknown Source:6)
       at androidx.datastore.preferences.protobuf.UnsafeUtil.<clinit>(Unknown Source:60)
       at androidx.datastore.preferences.protobuf.UnsafeUtil.getUnsafe(Unknown Source:0)
       at androidx.datastore.preferences.protobuf.MessageSchema.<clinit>(Unknown Source:5)
       at androidx.datastore.preferences.protobuf.MessageSchema.newSchema(Unknown Source:0)
       at androidx.datastore.preferences.protobuf.ManifestSchemaFactory.newSchema(Unknown Source:36)
       at androidx.datastore.preferences.protobuf.ManifestSchemaFactory.createSchema(Unknown Source:49)
       at androidx.datastore.preferences.protobuf.Protobuf.schemaFor(Unknown Source:17)
       at androidx.datastore.preferences.protobuf.Protobuf.schemaFor(Unknown Source:4)
       at androidx.datastore.preferences.protobuf.GeneratedMessageLite.parsePartialFrom(Unknown Source:12)
       at androidx.datastore.preferences.protobuf.GeneratedMessageLite.parseFrom(Unknown Source:8)
       at androidx.datastore.preferences.PreferencesProto$PreferenceMap.parseFrom(Unknown Source:2)
       at androidx.datastore.preferences.PreferencesMapCompat$Companion.readFrom(Unknown Source:5)
       at androidx.datastore.preferences.core.PreferencesSerializer.readFrom(Unknown Source:2)
       at androidx.datastore.core.SingleProcessDataStore.readData(Unknown Source:84)
       at androidx.datastore.core.SingleProcessDataStore.readDataOrHandleCorruption(Unknown Source:90)
       at androidx.datastore.core.SingleProcessDataStore.readAndInit(Unknown Source:177)
       at androidx.datastore.core.SingleProcessDataStore.readAndInitOrPropagateFailure(Unknown Source:60)
       at androidx.datastore.core.SingleProcessDataStore.handleRead(Unknown Source:43)
       at androidx.datastore.core.SingleProcessDataStore.access$handleRead(Unknown Source:0)
       at androidx.datastore.core.SingleProcessDataStore$actor$3.invokeSuspend(Unknown Source:42)
       at androidx.datastore.core.SingleProcessDataStore$actor$3.invoke(Unknown Source:8)
       at androidx.datastore.core.SingleProcessDataStore$actor$3.invoke(Unknown Source:4)
       at androidx.datastore.core.SimpleActor$offer$2.invokeSuspend(Unknown Source:97)
       at g9.a.resumeWith(Unknown Source:8)
       at w9.k0.run(Unknown Source:100)
       at kotlinx.coroutines.internal.f.run(Unknown Source:11)
       at kotlinx.coroutines.scheduling.j.run(Unknown Source:2)
       at kotlinx.coroutines.scheduling.a$a.run(Unknown Source:78)
                                                                                                        Suppressed: w9.i0: [r1{Cancelling}@a0ba4a5, Dispatchers.Main.immediate]

I added following rule to my proguard

-keep class androidx.datastore.** { *; }

I have tried quite different things but no luck.

I tried searching stackoverflow and getting help from chat gpt but nothing worked for me.

P.S: If I add minifyEnabled true in debug config then the app doesn't crash

0

There are 0 best solutions below