使用proguard android进行数组序列化的例外

Ary*_*ari 3 java android proguard

我使用了snappy DB库,我的'Location'类有默认构造函数.
不使用proguard但使用proguard时工作正常:

这是我的例外:

java.lang.IllegalArgumentException: Unable to create serializer "com.d.a.c.x" for class: Object[]
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

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

在此行引发异常:

snappydb.put("LocationsList", locationsList.toArray());
Run Code Online (Sandbox Code Playgroud)

我尝试-keep class mypackagename.Location { *; }了项目proguard,我的'Location'类实现了Serilizable.

还是行不通...

Sae*_*umi 6

-dontshrink 国旗似乎解决了这个问题.

这是完整的proguard配置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.**
Run Code Online (Sandbox Code Playgroud)