在10 API错误 - 保存对象,链表 [英] Saving object with linkedlist - error on API 10

查看:212
本文介绍了在10 API错误 - 保存对象,链表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

节能与Android API 10 LinkedList的对象时,我得到了一个错误:


  14 08-10:37:45.091:E / AndroidRuntime(29845):致命异常:
螺纹17 08-10 14:37:45.091:E / AndroidRuntime(29845):
java.lang.IllegalArgumentException异常:无炭场指数08-10
14:37:45.091:E / AndroidRuntime(29845):在
java.io.EmulatedFields.put(EmulatedFields.java:459)08-10
14:37:45.091:E / AndroidRuntime(29845):在
java.io.EmulatedFieldsForDumping.put(EmulatedFieldsForDumping.java:83)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.text.DecimalFormatSymbols.writeObject(DecimalFormatSymbols.java:591)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.lang.reflect.Method.invokeNative(本机方法)08-10
14:37:45.091:E / AndroidRuntime(29845):在
java.lang.reflect.Method.invoke(Method.java:507)08-10 14:37:45.091:
E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1219)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1575)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1847)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1689)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1653)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeFieldValues​​(ObjectOutputStream.java:1062)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeFields(ObjectOutputStream.java:1008)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.text.DecimalFormat.writeObject(DecimalFormat.java:1215)08-10
14:37:45.091:E / AndroidRuntime(29845):在
java.lang.reflect.Method.invokeNative(本机方法)08-10
14:37:45.091:E / AndroidRuntime(29845):在
java.lang.reflect.Method.invoke(Method.java:507)08-10 14:37:45.091:
E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1219)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1575)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1847)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1689)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1653)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeFieldValues​​(ObjectOutputStream.java:1143)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:413)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1241)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1205)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1575)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1847)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1689)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1653)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeFieldValues​​(ObjectOutputStream.java:1143)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:413)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1241)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1575)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1847)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1689)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1653)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.util.LinkedList.writeObject(LinkedList.java:973)08-10
14:37:45.091:E / AndroidRuntime(29845):在
java.lang.reflect.Method.invokeNative(本机方法)08-10
14:37:45.091:E / AndroidRuntime(29845):在
java.lang.reflect.Method.invoke(Method.java:507)08-10 14:37:45.091:
E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1219)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1575)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1847)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1689)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1653)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeFieldValues​​(ObjectOutputStream.java:1143)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:413)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1241)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1575)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1847)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1689)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1653)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.util.LinkedList.writeObject(LinkedList.java:973)08-10
14:37:45.091:E / AndroidRuntime(29845):在
java.lang.reflect.Method.invokeNative(本机方法)08-10
14:37:45.091:E / AndroidRuntime(29845):在
java.lang.reflect.Method.invoke(Method.java:507)08-10 14:37:45.091:
E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1219)
08-10 14:37:45.091:E / AndroidRuntime(29845):在
java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1575)
08-10 14:37:45.091:E / AndroidRuntime(29845):在java.io.Ob


我不知道哪里是小故障,我不认为LinkedList的是一个问题,因为它是自API 1,但从来没有少不会在Android API 18发生的,任何想法在哪里出了问题?

保存:

 的FileOutputStream FOS = NULL;
    尝试{
        FOS = openFileOutput(shelf.obj,Context.MODE_PRIVATE);
        ObjectOutputStream的出=新的ObjectOutputStream(FOS);
        out.writeObject(listOfShelfs);
        out.close();
        fos.close();
    }赶上(FileNotFoundException异常五){
        //抓住
    }赶上(IOException异常五){
        //抓住
    }

对象保存:

 私有静态HashMap的<弦乐,MessageShelf> listOfShelfs =新的HashMap<弦乐,MessageShelf>();

MessageShelf:

 公共类MessageShelf实现Serializable {
私有静态最后的serialVersionUID长1L =;
市民朋友correspodent;
日历lastSeen;
日历lastSend;
布尔安全;
问答LT; MessageList中的> historyMessagesLists =新的LinkedList<&MessageList中的GT;();
公共字符串lastMessageBody =;
公共日历lastDate;}


解决方案

这似乎是的错误14495:Android 2.3及3.0的系列化的DecimalFormatSymbols破

when saving an object with LinkedList on android API 10 I obtain an error:

08-10 14:37:45.091: E/AndroidRuntime(29845): FATAL EXCEPTION:
Thread-17 08-10 14:37:45.091: E/AndroidRuntime(29845):
java.lang.IllegalArgumentException: no char field 'exponential' 08-10
14:37:45.091: E/AndroidRuntime(29845):    at
java.io.EmulatedFields.put(EmulatedFields.java:459) 08-10
14:37:45.091: E/AndroidRuntime(29845):    at
java.io.EmulatedFieldsForDumping.put(EmulatedFieldsForDumping.java:83)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.text.DecimalFormatSymbols.writeObject(DecimalFormatSymbols.java:591)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.lang.reflect.Method.invokeNative(Native Method) 08-10
14:37:45.091: E/AndroidRuntime(29845):    at
java.lang.reflect.Method.invoke(Method.java:507) 08-10 14:37:45.091:
E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1219)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1575)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1847)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1689)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1653)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:1062)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeFields(ObjectOutputStream.java:1008)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.text.DecimalFormat.writeObject(DecimalFormat.java:1215) 08-10
14:37:45.091: E/AndroidRuntime(29845):    at
java.lang.reflect.Method.invokeNative(Native Method) 08-10
14:37:45.091: E/AndroidRuntime(29845):    at
java.lang.reflect.Method.invoke(Method.java:507) 08-10 14:37:45.091:
E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1219)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1575)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1847)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1689)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1653)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:1143)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:413)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1241)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1205)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1575)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1847)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1689)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1653)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:1143)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:413)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1241)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1575)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1847)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1689)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1653)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.util.LinkedList.writeObject(LinkedList.java:973) 08-10
14:37:45.091: E/AndroidRuntime(29845):    at
java.lang.reflect.Method.invokeNative(Native Method) 08-10
14:37:45.091: E/AndroidRuntime(29845):    at
java.lang.reflect.Method.invoke(Method.java:507) 08-10 14:37:45.091:
E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1219)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1575)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1847)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1689)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1653)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:1143)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:413)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1241)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1575)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1847)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1689)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1653)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.util.LinkedList.writeObject(LinkedList.java:973) 08-10
14:37:45.091: E/AndroidRuntime(29845):    at
java.lang.reflect.Method.invokeNative(Native Method) 08-10
14:37:45.091: E/AndroidRuntime(29845):    at
java.lang.reflect.Method.invoke(Method.java:507) 08-10 14:37:45.091:
E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1219)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at
java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1575)
08-10 14:37:45.091: E/AndroidRuntime(29845):  at java.io.Ob

I don't where is glitch and I don't think that linkedlist is a problem as it is since API 1, but never the less it doesn't occur on android API 18, any idea where's a problem?

Saving:

FileOutputStream fos = null;
    try {
        fos = openFileOutput("shelf.obj", Context.MODE_PRIVATE);
        ObjectOutputStream out = new ObjectOutputStream(fos);
        out.writeObject(listOfShelfs);
        out.close();
        fos.close();
    } catch (FileNotFoundException e) {
        //catch
    } catch (IOException e) {
        //catch
    }

object to save:

private static HashMap<String, MessageShelf> listOfShelfs = new HashMap<String, MessageShelf>();

MessageShelf:

public class MessageShelf implements Serializable{
private static final long serialVersionUID = 1L;
public Friend correspodent;
Calendar lastSeen;
Calendar lastSend;
boolean secure;
Queue<MessageList> historyMessagesLists=new LinkedList<MessageList>();
public String lastMessageBody = "";
public Calendar lastDate;}

解决方案

This seems to be Bug 14495: Android 2.3 and 3.0's DecimalFormatSymbols serialization is broken.

这篇关于在10 API错误 - 保存对象,链表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆