使用 proguard android 进行数组序列化时出现异常

Exception on array serialization using proguard android

我使用了 snappy DB library 而我的 'Location' class 有默认构造函数。
不使用混淆器但使用混淆器时工作正常:

这是我的例外:

java.lang.IllegalArgumentException: Unable to create serializer "com.d.a.c.x" for class: Object[]

这是我的代码:

import com.snappydb.DBFactory;
ArrayList<Location> mLocationsList;
snappydb = DBFactory.open(mContext, "LocationsList");
snappydb.put("LocationsList", mLocationsList.toArray());

此行抛出异常:

snappydb.put("LocationsList", locationsList.toArray());

我在项目混淆器中尝试了 -keep class mypackagename.Location { *; },我的 'Location' class 实现了 Serilizable。

还是不行...

-dontshrink 标志似乎可以解决问题。

这是 SnappyDBKryo 的完整混淆器配置:

    -dontshrink
    -verbose
    -dontwarn sun.reflect.**
    -dontwarn java.beans.**
    -keep,allowshrinking class com.esotericsoftware.** {
       <fields>;
       <methods>;
    }
    -keep,allowshrinking class java.beans.** { *; }
    -keep,allowshrinking class sun.reflect.** { *; }
    -keep,allowshrinking class com.esotericsoftware.kryo.** { *; }
    -keep,allowshrinking class com.esotericsoftware.kryo.io.** { *; }
    -keep,allowshrinking class sun.nio.ch.** { *; }
    -dontwarn sun.nio.ch.**
    -dontwarn sun.misc.**

    -keep,allowshrinking class com.snappydb.** { *; }
    -dontwarn com.snappydb.**