使用 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
标志似乎可以解决问题。
这是 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.**
我使用了 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
标志似乎可以解决问题。
这是 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.**