Проблема Proguard при использовании GSON

Я использую Gson в своем приложении, и для этого я использую некоторые классы с именем так же, как и при использовании Json. Мое приложение работает хорошо, но, при написании proguard, сбои приложений, я думаю, некоторые из классов сокращаются. Моя ошибка:

Java.lang.ClassCastException: com.google.gson.internal.StringMap не может быть добавлено в com.sample.package.GsonClass

Вам нужно добавить эти строки в свой proguard, чтобы класс gson хранился при подписании вашего приложения.

##---------------Begin: proguard configuration for Gson ---------- # Gson uses generic type information stored in a class file when working with fields. Proguard # removes such information by default, so configure it to keep all of it. -keepattributes Signature # Gson specific classes -keep class sun.misc.Unsafe { *; } #-keep class com.google.gson.stream.** { *; } # Application classes that will be serialized/deserialized over Gson -keep class com.google.gson.examples.android.model.** { *; } ##---------------End: proguard configuration for Gson ---------- 

Другая причина: перед использованием

 List<T> list = gson.fromJson(jsonString, type); 

Вы должны создать правильный типToken, например:

 Type type = new TypeToken<List<T>>(){}.getType(); List<T> list = gson.fromJson(jsonString,type) 
Intereting Posts
Android: BitmapDrawable.Draw (Canvas) Кажется не работает API Mobile Vision – объединить новый объект-детектор для продолжения обработки кадра Отсутствие R.java не может скомпилировать Как реализовать doubletap в onview для imageview? Как получить фоновый рисунок из окна Activity? Android listview с Glide – удвоенными растровыми изображениями после загрузки Разница в WebView в Android 4.3 до 4.4 Определите, имеет ли браузер клавиатуру / клавиши со стрелками на веб-странице Подключить устройство Android через MQTT с помощью ssl Android Gradle: переименовать / отключить тип по умолчанию Как я могу вернуть ArrayList из моей AsyncTask? Просто загруженное приложение для Android: как долго пока приложение отображается в Android Market? Кордова: все еще получаю сообщение об ошибке «пожалуйста, установите цель 23 Android» с установленным Android-23 sdk Запустить активность с другого приложения Android Как обрабатывать проверку и деинсталлировать динамически созданный флажок в android