pilgr / Paper

Paper is a fast NoSQL-like storage for Java/Kotlin objects on Android with automatic schema migration support.
Apache License 2.0
2.34k stars 234 forks source link

minifyEnabled true is crashing the application when read operation is done after write #190

Closed AlankritaShah closed 2 years ago

AlankritaShah commented 2 years ago

Code:

Paper.book().write("mellow","heyy")
val hello = Paper.book().read("mellow", "something")

Paper: io.paperdb:paperdb:2.7.1

This is leading to the crash every time with minifyEnabled true.

Error: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.alankrita.kitchensink/com.alankrita.kitchensink.MainActivity}: io.paperdb.PaperDbException: Couldn't read/deserialize file /data/user/0/com.alankrita.kitchensink/files/io.paperdb/mellow.pt for table mellow at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3827) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4003) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2317) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:246) at android.app.ActivityThread.main(ActivityThread.java:8595) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130) Caused by: io.paperdb.PaperDbException: Couldn't read/deserialize file /data/user/0/com.alankrita.kitchensink/files/io.paperdb/mellow.pt for table mellow at io.paperdb.DbStoragePlainFile.readTableFile(Unknown Source:60) at io.paperdb.DbStoragePlainFile.select(Unknown Source:41) at io.paperdb.Book.read(Unknown Source:2) at com.alankrita.kitchensink.MainActivity.onCreate(Unknown Source:37) at android.app.Activity.performCreate(Activity.java:8207) at android.app.Activity.performCreate(Activity.java:8191) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3800) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4003)  at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)  at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)  at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2317)  at android.os.Handler.dispatchMessage(Handler.java:106)  at android.os.Looper.loop(Looper.java:246)  at android.app.ActivityThread.main(ActivityThread.java:8595)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)  Caused by: com.esotericsoftware.kryo.KryoException: Error constructing instance of class: io.paperdb.PaperTable at com.esotericsoftware.kryo.Kryo$DefaultInstantiatorStrategy$2.newInstance(Unknown Source:32) at com.esotericsoftware.kryo.Kryo.newInstance(Unknown Source:17) at com.esotericsoftware.kryo.serializers.FieldSerializer.create(Unknown Source:0) at com.esotericsoftware.kryo.serializers.FieldSerializer.read(Unknown Source:32) at com.esotericsoftware.kryo.Kryo.readObject(Unknown Source:67) at io.paperdb.DbStoragePlainFile.readContent(Unknown Source:12) at io.paperdb.DbStoragePlainFile.readTableFile(Unknown Source:23) at io.paperdb.DbStoragePlainFile.select(Unknown Source:41)  at io.paperdb.Book.read(Unknown Source:2)  at com.alankrita.kitchensink.MainActivity.onCreate(Unknown Source:37)  at android.app.Activity.performCreate(Activity.java:8207)  at android.app.Activity.performCreate(Activity.java:8191)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3800)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4003)  at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)  at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)  at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2317)  at android.os.Handler.dispatchMessage(Handler.java:106)  at android.os.Looper.loop(Looper.java:246)  at android.app.ActivityThread.main(ActivityThread.java:8595)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)  Caused by: java.lang.IllegalAccessException: java.lang.Class is not accessible from java.lang.Class<com.esotericsoftware.kryo.Kryo$DefaultInstantiatorStrategy$2> at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:343) at com.esotericsoftware.kryo.Kryo$DefaultInstantiatorStrategy$2.newInstance(Unknown Source:5) at com.esotericsoftware.kryo.Kryo.newInstance(Unknown Source:17)  at com.esotericsoftware.kryo.serializers.FieldSerializer.create(Unknown Source:0)  at com.esotericsoftware.kryo.serializers.FieldSerializer.read(Unknown Source:32)  at com.esotericsoftware.kryo.Kryo.readObject(Unknown Source:67)  at io.paperdb.DbStoragePlainFile.readContent(Unknown Source:12)  at io.paperdb.DbStoragePlainFile.readTableFile(Unknown Source:23)  at io.paperdb.DbStoragePlainFile.select(Unknown Source:41)  at io.paperdb.Book.read(Unknown Source:2)  at com.alankrita.kitchensink.MainActivity.onCreate(Unknown Source:37)  at android.app.Activity.performCreate(Activity.java:8207)  at android.app.Activity.performCreate(Activity.java:8191)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3800)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4003)  at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)  at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)  at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2317)  at android.os.Handler.dispatchMessage(Handler.java:106)  at android.os.Looper.loop(Looper.java:246)  at android.app.ActivityThread.main(ActivityThread.java:8595)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130) 

jaswant0605 commented 2 years ago

Use grade version 7.0.1 instead of 7.0.2.

AlankritaShah commented 2 years ago

Use grade version 7.0.1 instead of 7.0.2.

AlankritaShah commented 2 years ago

This worked. Thank you.