QuickBlox / quickblox-android-sdk-releases

This repository contains binary distributions of Android products released by QuickBlox.
BSD 3-Clause "New" or "Revised" License
31 stars 15 forks source link

crash on Nexus, android sdk 6.0 and 7.0 #8

Closed sjgtongji closed 3 years ago

sjgtongji commented 7 years ago

I use quickblox sdk version 3.3.1 , when i use gson to Serialize QBChatDialog , the app crashed below is the crash log: java.lang.IllegalArgumentException: class java.text.DecimalFormat declares multiple JSON fields named maximumFractionDigits at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:170) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:100) at com.google.gson.Gson.getAdapter(Gson.java:423) at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:56) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:125) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:243) at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:69) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:125) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:243) at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:69) at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:97) at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:61) at com.google.gson.Gson.toJson(Gson.java:669) at com.google.gson.Gson.toJson(Gson.java:648) at com.google.gson.Gson.toJson(Gson.java:603) at com.myhero.fh.QuickBlox$5.onSuccess(QuickBlox.java:330) at com.myhero.fh.QuickBlox$5.onSuccess(QuickBlox.java:307) at com.myhero.fh.quickblox.chat.ChatHelper$9.onSuccess(ChatHelper.java:388) at com.myhero.fh.quickblox.chat.ChatHelper$9.onSuccess(ChatHelper.java:380) at com.quickblox.auth.session.Query.notifySuccess(Unknown Source) at com.quickblox.auth.session.Query$VersionEntityCallback.completedWithResponse(Unknown Source) at com.quickblox.auth.session.Query.completedWithResponse(Unknown Source) at com.quickblox.core.server.HttpRequestRunnable$1.handleMessage(Unknown Source) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run(MessageQueueThreadImpl.java:196) at java.lang.Thread.run(Thread.java:761)

kapilojha commented 7 years ago

I am also facing this issue. Have you got any solution ? If yes, then please let me know.

jatalepallavi commented 7 years ago

I am also getting the same issue. Please help

aashu09 commented 7 years ago

I am also facing this issue in Android 6 and 7 but not found any solution. Please help

sjgtongji commented 7 years ago

I have solve the crash problem

  private final Gson gson = new GsonBuilder().addSerializationExclusionStrategy(
    new ExclusionStrategy() {
    @Override
    public boolean shouldSkipField(FieldAttributes f) {
        return false;
    }

    @Override
    public boolean shouldSkipClass(Class<?> clazz) {
        if(clazz.getSimpleName().equals("SimpleDateFormat"))
            return true;
        return false;
    }
}).create();

use above code to construct gson object