Note that there are some explanatory texts on larger screens.

plurals
  1. POGson throws an exception on > 4.0 devices
    text
    copied!<p>I'm using Gson successfully to place json into an object. It works like a charm on devices with android 2.2 (emulator and real device), when I deploy to android 4.0 and above (emulator and device) I get this very weird exception.</p> <p>I've confirmed that there is no problem with json string because the same code runs happily on older devices. </p> <p>The exception is definitely being thrown here:</p> <p><code>Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create(); return gson.fromJson(jsonString, t);</code> </p> <p>in the fromJson method.</p> <p>Any ideas? </p> <p>Json String: (had to remove the http:// from the urls in the json) <pre>{ "session_id" : "a89d8cd07e356", "shoutout_items" : [ { "attachment_url" : "xxxxxx.mobi/pic.php?id=478ba67a44d", "attachment_url_full_size" : "xxxxxx.mobi/pic.php?id=01810a5e9f6e7065cd4", "expires_at" : 1363264081, "have_attachment" : true, "message_text" : "Hi", "partner" : { "country_code" : "za", "gender" : "male", "nickname" : "nick", "profile_pic_full_size_url" : "xxxxxx.mobi/pic.php?id=810a5e9f6e7065cd43629f1", "profile_pic_url" : "xxxxxx.mobi/pic.php?id=23ca67a44d23", "profile_summary" : "20, DBN" }, "shoutout_id" : 31170, "type" : "shoutout" }, { "attachment_url" : null, "attachment_url_full_size" : null, "expires_at" : 1363264081, "have_attachment" : false, "message_text" : "hello", "partner" : { "country_code" : "za", "gender" : "male", "nickname" : "mark", "profile_pic_full_size_url" : "xxxxxx.mobi/pic.php?id=2db9e7f86b9bf7ca", "profile_pic_url" : "xxxxxx.mobi/pic.php?id=b110191f1afac", "profile_summary" : "40, DBN" }, "shoutout_id" : 31322, "type" : "shoutout" } ] }</pre></p> <p>Stacktrace:</p> <pre><code> 03-14 14:56:02.200: E/AndroidRuntime(19588): FATAL EXCEPTION: main 03-14 14:56:02.200: E/AndroidRuntime(19588): java.lang.RuntimeException: Unable to start activity ComponentInfo{mobi.smiggle.android/mobi.smiggle.android.MainFragmentActivity}: java.lang.IllegalArgumentException: class android.text.BoringLayout declares multiple JSON fields named m_paint 03-14 14:56:02.200: E/AndroidRuntime(19588): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1968) 03-14 14:56:02.200: E/AndroidRuntime(19588): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1993) 03-14 14:56:02.200: E/AndroidRuntime(19588): at android.app.ActivityThread.access$600(ActivityThread.java:127) 03-14 14:56:02.200: E/AndroidRuntime(19588): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1159) 03-14 14:56:02.200: E/AndroidRuntime(19588): at android.os.Handler.dispatchMessage(Handler.java:99) 03-14 14:56:02.200: E/AndroidRuntime(19588): at android.os.Looper.loop(Looper.java:137) 03-14 14:56:02.200: E/AndroidRuntime(19588): at android.app.ActivityThread.main(ActivityThread.java:4507) 03-14 14:56:02.200: E/AndroidRuntime(19588): at java.lang.reflect.Method.invokeNative(Native Method) 03-14 14:56:02.200: E/AndroidRuntime(19588): at java.lang.reflect.Method.invoke(Method.java:511) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 03-14 14:56:02.200: E/AndroidRuntime(19588): at dalvik.system.NativeStart.main(Native Method) 03-14 14:56:02.200: E/AndroidRuntime(19588): Caused by: java.lang.IllegalArgumentException: class android.text.BoringLayout declares multiple JSON fields named m_paint 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:122) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.Gson.getAdapter(Gson.java:353) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.&lt;init&gt;(ReflectiveTypeAdapterFactory.java:82) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:81) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:118) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.Gson.getAdapter(Gson.java:353) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.&lt;init&gt;(ReflectiveTypeAdapterFactory.java:82) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:81) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:118) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.Gson.getAdapter(Gson.java:353) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.&lt;init&gt;(ReflectiveTypeAdapterFactory.java:82) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:81) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:118) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.Gson.getAdapter(Gson.java:353) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.&lt;init&gt;(ReflectiveTypeAdapterFactory.java:82) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:81) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:118) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.Gson.getAdapter(Gson.java:353) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.&lt;init&gt;(ReflectiveTypeAdapterFactory.java:82) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(ReflectiveTypeAdapterFactory.java:81) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:118) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.Gson.getAdapter(Gson.java:353) 03-14 14:56:02.200: E/AndroidRuntime(19588): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.&lt;init&gt;(ReflectiveTypeAdapterFactory.java: </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload