2016-08-29 35 views
-1

我正在获取异常跟踪。任何人都可以请建议。我在做ObjectInputStream.readObject()。这是创造问题。由于java.lang.IllegalArgumentException导致的Java序列化:不是原始字段

Exception: java.lang.RuntimeException: An error occured while executing doInBackground() 
     at android.os.AsyncTask$3.done(AsyncTask.java:300) 
     at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) 
     at java.util.concurrent.FutureTask.setException(FutureTask.java:222) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
     at java.lang.Thread.run(Thread.java:841) 
Caused by java.lang.IllegalArgumentException: not a primitive field 
     at java.lang.reflect.Field.setFField(Field.java) 
     at java.lang.reflect.Field.setFloat(Field.java:746) 
     at java.io.ObjectInputStream.readFieldValues(ObjectInputStream.java:1092) 
     at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:455) 
     at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1347) 
     at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1244) 
     at java.io.ObjectInputStream.readNewObject(ObjectInputStream.java:1833) 
     at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:762) 
     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1981) 
     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:1938) 
+2

你能提供代码吗? – Abhishek

+0

我的代码非常大。 objectInputStream.readObject()抛出异常。 – raghu

+1

没有任何重要的代码,没有什么可做的 – jlumietu

回答

0

一个字段可以是基本类型或引用类型。有八种基本类型:布尔型,字节型,短型,int型,long型,char型,float型和double型。引用类型是任何是java.lang.Object的直接或间接子类,包括接口,数组和枚举类型。

可能您的类包含不可序列化的引用类型字段, 尝试序列化类中的所有引用类型字段。

+0

ArrayList myClass;应该MyClass也可序列化?因为ArrayList是可序列化的。 – raghu

相关问题