Mar*_*mer 1 java debugging serialization android
我遇到序列化问题,无法找到原因。这是Eclipse中的Android应用程序,给了我一个非常无用的堆栈跟踪,如下所示:
09-01 00:06:24.414: W/System.err(9961): java.io.NotSerializableException: com.myprogram.main.Entity$1
09-01 00:06:24.414: W/System.err(9961): at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1344)
09-01 00:06:24.414: W/System.err(9961): at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1651)
09-01 00:06:24.414: W/System.err(9961): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1497)
09-01 00:06:24.414: W/System.err(9961): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1461)
09-01 00:06:24.415: W/System.err(9961): at java.io.ObjectOutputStream.writeFieldValues(ObjectOutputStream.java:959)
09-01 00:06:24.415: W/System.err(9961): at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:360)
09-01 00:06:24.415: W/System.err(9961): at java.io.ObjectOutputStream.writeHierarchy(ObjectOutputStream.java:1054)
09-01 00:06:24.415: W/System.err(9961): at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1384)
09-01 00:06:24.415: W/System.err(9961): at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1651)
09-01 00:06:24.415: W/System.err(9961): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1497)
09-01 00:06:24.415: W/System.err(9961): at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1461)
Run Code Online (Sandbox Code Playgroud)
找到Java标志以启用扩展的序列化调试信息后,我决定设置
-Dsun.io.serialization.extendedDebugInfo=true
Run Code Online (Sandbox Code Playgroud)
以下如何为从eclipse运行的程序指定默认的JVM参数?我将标志插入到JRE的VM参数中,但是堆栈跟踪没有更改。重新启动Eclipse没有帮助。因此,在编辑eclipse的vm args之后,我将标志添加到了eclipse.ini,但是堆栈跟踪仍然保持不变。我期望输出看起来像java.io.NotSerializableException-但是该字段在哪里?。
我得到它com.myprogram.main.Entity$1是不可序列化的。这很简单。问题是为什么?关于如何解决这个问题有java.io.NotSerializableException什么建议吗?
您有一个匿名内部类com.myprogram.main.Entity$1,但不是。Serializable.这在例外中有明确说明。的$指示,它的内表面或静态嵌套类所产生的异常。后面的数字$表示该类是匿名的,否则内部类的名称将出现在此处。在1进一步表明这是内的第一匿名内部类com.myprogram.main.Entity。
有关更多信息,请参见如何在NotSerializableException中标识匿名内部类。