GSON在发行版中将ArrayList <long>反序列化为ArrayList <double>,而不是在调试版中</double> </long>

时间:2014-07-30 15:22:50

标签: android json serialization arraylist gson

我正在使用GSON来序列化我的本地存储信息。随着我开发功能,一切都很顺利。

然而,就在我发布正式版本(导出APK的发布版本)之前,应用程序因某些类强制转换异常而崩溃。

我的本​​地信息声明为:

private class SavedInfo {
    public int appVersion; //Used for future update
    public int fileVersion;
    public ArrayList<Long> savedIDs;
    public SavedInfo() {
        savedIDs = new ArrayList<Long>();
    }
}

我发现它崩溃了,因为GSON会反序列化我保存的json字符串

{"savedIDs":[646,710],"fileVersion":2,"appVersion":220}

到内存中的ArrayList,因为一旦我调用long id = savedIDs.get(index)我就会得到&#34;无法转换为Double to Long&#34;异常。

我的问题是:

  1. 如何阻止GSON进行预期的反序列化?
  2. 为什么这个问题只发生在发布版本中,而不是发生在调试版本中?
  3. 顺便说一句,我也禁用了这个类的保护选项。

0 个答案:

没有答案