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.
还是行不通...
-dontshrink 国旗似乎解决了这个问题.
这是完整的proguard配置SnappyDB和Kryo:
-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)