android.text.BoringLayout声明了多个名为mPaint的JSON字段?

时间:2014-02-06 10:05:32

标签: java android json gson

谁能告诉我这到底是怎么回事?

02-06 09:51:41.609: E/ACRA(15955): com.goosesys.dta_pta_test fatal error : Unable to start service com.goosesys.dta_pta_test.BGCollectorProc@4232c178 with Intent { flg=0x4 cmp=com.goosesys.dta_pta_test/.BGCollectorProc (has extras) }: java.lang.IllegalArgumentException: class android.text.BoringLayout declares multiple JSON fields named mPaint
02-06 09:51:41.609: E/ACRA(15955): java.lang.RuntimeException: Unable to start service com.goosesys.dta_pta_test.BGCollectorProc@4232c178 with Intent { flg=0x4 cmp=com.goosesys.dta_pta_test/.BGCollectorProc (has extras) }: java.lang.IllegalArgumentException: class android.text.BoringLayout declares multiple JSON fields named mPaint
02-06 09:51:41.609: E/ACRA(15955):  at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2515)
02-06 09:51:41.609: E/ACRA(15955):  at android.app.ActivityThread.access$1900(ActivityThread.java:133)
02-06 09:51:41.609: E/ACRA(15955):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1300)
02-06 09:51:41.609: E/ACRA(15955):  at android.os.Handler.dispatchMessage(Handler.java:99)
02-06 09:51:41.609: E/ACRA(15955):  at android.os.Looper.loop(Looper.java:137)
02-06 09:51:41.609: E/ACRA(15955):  at android.app.ActivityThread.main(ActivityThread.java:4810)
02-06 09:51:41.609: E/ACRA(15955):  at java.lang.reflect.Method.invokeNative(Native Method)
02-06 09:51:41.609: E/ACRA(15955):  at java.lang.reflect.Method.invoke(Method.java:511)
02-06 09:51:41.609: E/ACRA(15955):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
02-06 09:51:41.609: E/ACRA(15955):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
02-06 09:51:41.609: E/ACRA(15955):  at dalvik.system.NativeStart.main(Native Method)
02-06 09:51:41.609: E/ACRA(15955): Caused by: java.lang.IllegalArgumentException: class android.text.BoringLayout declares multiple JSON fields named mPaint
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:122)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.Gson.getAdapter(Gson.java:356)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(ReflectiveTypeAdapterFactory.java:82)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:81)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:118)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.Gson.getAdapter(Gson.java:356)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(ReflectiveTypeAdapterFactory.java:82)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:81)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:118)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.Gson.getAdapter(Gson.java:356)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(ReflectiveTypeAdapterFactory.java:82)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:81)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:118)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.Gson.getAdapter(Gson.java:356)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(ReflectiveTypeAdapterFactory.java:82)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:81)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:118)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.Gson.getAdapter(Gson.java:356)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(ReflectiveTypeAdapterFactory.java:82)
02-06 09:51:41.609: E/ACRA(15955):  at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:81)

应用程序昨晚工作得非常出色,今天早上现在已经重构了。我假设它与对象有关 - &gt; JSON(通过Gson),但我不确定如何解决它,因为错误信息是无用的!

1 个答案:

答案 0 :(得分:2)

在发布此消息后不久就想出来了。这完全归功于我的对象继承自我的BaseDB类。因此,当涉及到JSON / GSON序列化时,它会遇到BaseDB类并且崩溃了。

修复是将transient修饰符添加到我不想序列化的任何内容中。工作就像一个魅力!