2015-07-28 56 views
3

我使用了snappy DB library,我的'Location'類有默認的構造函數。使用proguard進行數組序列化的例外android

這是我的例外:

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()); 

拋出在這條線的異常:


不使用ProGuard,但使用ProGuard時,當工作正常
snappydb.put("LocationsList", locationsList.toArray()); 

我嘗試了-keep class mypackagename.Location { *; }項目proguard和我的'地點'類實現Serilizable。

仍然沒有工作...

+0

看來你'Location'類不是'Serializable'? – Razib

回答

6

-dontshrink標誌似乎解決了問題。

這裏是SnappyDBKryo全ProGuard的配置:

-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.** 
+0

哇!你救了我的一天!謝謝;) 它的工作原理和混淆類 – Aryadegari

相關問題