Вызвано: java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap невозможно привести к com.xxx.core.model.vJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Вызвано: java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap невозможно привести к com.xxx.core.model.v

Сообщение Anonymous »

Получается ошибка: java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap невозможно привести к профилю:
Ниже приведен метод, при котором происходит сбой, и мы пробовал реализовать правила proguard для gson, но рабочее приложение все равно дает сбой. Сбой, который у нас происходит, продолжается в течение цикла
Caused by: java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to com.xxx.Profile
at com..CDManagmentHelper.getProfileLisWOHomeUnmanaged(SourceFile:1901)

Ниже приведен класс, в котором мы используем профиль в цикле for
@NonNull
public static List getProfileLisWOHomeUnmanaged(@NonNull RouterStatusModel routerStatusModel) {
List filteredPCProfileList = new ArrayList();
for (Profile profile : routerStatusModel.getPcProfileList()) {
Log.log(CLASS_NAME, "getProfileLisWOHomeUnmanaged--> profile id: " + profile.getId());
if (!profile.getId().contains(PROFILE_TYPE_HOME) && !profile.getId().contains(PROFILE_TYPE_UNMANAGED)) {
filteredPCProfileList.add(profile);
}
}

//Here we are sorting filtered profile list alphabetically
Collections.sort(filteredPCProfileList, (o1, o2) -> o1.getName().compareToIgnoreCase(o2.getName()));
Log.log(CLASS_NAME, " getProfileLisWOHomeUnmanaged returning data : :" + filteredPCProfileList.size());
return filteredPCProfileList;
}

Вот класс профиля:
public class Profile implements Serializable {
@SerializedName("id")
private String id = null;

@SerializedName("name")
private String name = null;
...
}

Вот RouterStatusModel, который используется в цикле for
public class RouterStatusModel {
private List pcProfileList = new ArrayList();

@NonNull
public List getPcProfileList() {
return pcProfileList;
}
}

Вот добавлены правила proguard для gson
# Retain generic signatures of TypeToken and its subclasses with R8 version 3.0 and higher.
-keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken
-keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken
-keep class com.google.gson.reflect.TypeToken
-keep class * extends com.google.gson.reflect.TypeToken
-keep public class * implements java.lang.reflect.Type

# Prevent proguard from stripping interface information from TypeAdapter, TypeAdapterFactory,
# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
-keep class * extends com.google.gson.TypeAdapter
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer

# For using GSON @Expose annotation
-keepattributes *Annotation*

# Gson specific classes
-dontwarn sun.misc.**
#-keep class com.google.gson.stream.** { *; }

# Prevent R8 from leaving Data object members always null
-keepclassmembers,allowobfuscation class * {
@com.google.gson.annotations.SerializedName ;
}

# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { *; }
-keep class com.google.gson.examples.android.model.** { ; }

##---------------End: proguard configuration for Gson ----------


Подробнее здесь: https://stackoverflow.com/questions/791 ... kedtreemap
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»