I use GSON in my Android application for data analysis. I added an enumeration to the Model object. After adding an enumeration, my application started crashing. When I made runProguard false, everything works fine. I did everything I could find on the Internet to fix the problem when the program is correct. But still no luck.
I already did the following in the proguard rules file
-keep class com.google.** { *; } -keepattributes *Annotation* -keepattributes Signature -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); }
Example Enum Stuff:
public enum TypeX { @SerializedName("live") LIVE, @SerializedName("upcoming") UPCOMING, @SerializedName("replay") REPLAY; }
My stack trace
java.lang.AssertionError at com.google.gson.internal.bind.TypeAdapters$EnumTypeAdapter.<init>(Unknown Source) at com.google.gson.internal.bind.TypeAdapters$26.create(Unknown Source) at com.google.gson.Gson.getAdapter(Unknown Source) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(Unknown Source) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(Unknown Source) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(Unknown Source) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(Unknown Source) at com.google.gson.Gson.getAdapter(Unknown Source) at com.google.gson.internal.bind.CollectionTypeAdapterFactory.create(Unknown Source) at com.google.gson.Gson.getAdapter(Unknown Source) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.<init>(Unknown Source) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.createBoundField(Unknown Source) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(Unknown Source) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(Unknown Source) at com.google.gson.Gson.getAdapter(Unknown Source) at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(Unknown Source) at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(Unknown Source) at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(Unknown Source) at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(Unknown Source) at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(Unknown Source) at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(Unknown Source) at com.google.gson.Gson.toJson(Unknown Source) at com.google.gson.Gson.toJson(Unknown Source) at com.google.gson.Gson.toJson(Unknown Source) at com.google.gson.Gson.toJson(Unknown Source) at com.theice.gsonapp.app.MainActivity.a(Unknown Source) at com.theice.gsonapp.app.MainActivity.onCreate(Unknown Source) at android.app.Activity.performCreate(Activity.java:5231) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) at android.app.ActivityThread.access$800(ActivityThread.java:135) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5017) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) at dalvik.system.NativeStart.main(Native Method)
java json android gson assertion
Aav
source share