我一直在试图反序列化一个由android应用程序中的普通JDK创建的对象,每当我尝试这样做时,我都会收到一个StackOverFlowError。当在android中反序列化一个对象时出现StackOverFlowError
我可以使用在davlik vm中使用JDK序列化的对象吗?文件大小为4 MB及其存储在资产文件夹,产生错误的行是以下
trie = (Trie<String, String>) new ObjectInputStream(ctx.getAssets().open(FILE_NAME)).readObject();
02-10 15:27:41.036: E/AndroidRuntime(2019): FATAL EXCEPTION: main
02-10 15:27:41.036: E/AndroidRuntime(2019): java.lang.StackOverflowError
02-10 15:27:41.036: E/AndroidRuntime(2019): at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:414)
02-10 15:27:41.036: E/AndroidRuntime(2019): at java.io.DataInputStream.readUTF(DataInputStream.java:433)
02-10 15:27:41.036: E/AndroidRuntime(2019): at java.io.ObjectInputStream.readNewString(ObjectInputStream.java:2171)
02-10 15:27:41.036: E/AndroidRuntime(2019): at java.io.ObjectInputStream.readNonPrimitiveContent(ObjectInputStream.java:918)
02-10 15:27:41.036: E/AndroidRuntime(2019): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2262)
02-10 15:27:41.036: E/AndroidRuntime(2019): at java.io.ObjectInputStream.readObject(ObjectInputStream.java:2217)
02-10 15:27:41.036: E/AndroidRuntime(2019): at java.io.ObjectInputStream.readFieldValues(ObjectInputStream.java:1291)
02-10 15:27:41.036: E/AndroidRuntime(2019): at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:518)
02-10 15:27:41.036: E/AndroidRuntime(2019): at java.io.ObjectInputStream.readObjectForClass(ObjectInputStream.java:1535)
02-10 15:27:41.036: E/AndroidRuntime(2019): at java.io.ObjectInputStream.readHierarchy(ObjectInputStream.java:1443)
....
4 MiB是堆栈中的一部分...您是否尝试将更多的内存分配给Java VM? – m0skit0 2012-02-10 11:39:26
@ m0skit0我直接在手机上运行它 – OKAN 2012-02-10 11:42:12