[안드로이드 공부]/안드로이드 공부
Missing type, Progard, Generic 문제
코코모모
2024. 4. 22. 14:11
java.lang.RuntimeException: Missing type parameter. at cohttp://m.google.gson.reflect.TypeToken.getSuperclassTypeParameter(Unknown Source:26) at cohttp://m.google.gson.reflect.TypeToken.<init>(SourceFile:1) at U2.e$a.<init>(SourceFile:1) at U2.e.a(SourceFile:8)
1. 위와 같은 문제 발생시 위치를 알기 어렵다.
--> Release, Debug 모두 확인 시 Release 에서만 발생 확인
2. Release 에서만 발생
--> 의심; minify, progard
--> 소스를 제대로 읽지 못해 발생 할 수 있으므로
2. gradle에
isMinifyEnabled = false
isDebuggable = true
로 설정 후 Release로 빌드 하면 에러 발생 안 함 확인 됨.
3. Progard
-keep class com.google.gson.** { *; }
-keep class com.comostudio.data.** { *; }
-keep class androidx.room.** { *; }
-keep class com.comostudio.workers.** { *; }
순서대로
1. gson 추가 후 TypeToken문제 해결 되고,
2. data에 해당 type 쓴 문제 해결 되고,
3. room에서 해당 type 사용 하는 곳 문제 되고,
4. worker에서 database작업 하는 부분 해결 됨.
Generic을 사용 하는 경우
위와 같이 Progard 에 대해 각별히 신경 써야 알아 먹는다.
이와 같이 설정 후 빌드 하면 문제 해결 완료 됨.