[안드로이드 공부]/안드로이드 공부

Missing type, Progard, Generic 문제

코코모모 2024. 4. 22. 14:11

아래는 코모스튜디오가 직접 만든 무료 앱이에요
(한 번만 봐주세요 ^^)

01

02

03

정각알림 만들기(말하는시계)

말하는 시계 (취침, 자전거) 

말하는 타이머 음성 스톱워치 

Progard

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 에 대해 각별히 신경 써야 알아 먹는다.

 

이와 같이 설정 후 빌드 하면 문제 해결 완료 됨.

모든 게시물은 코모스튜디오의 소유이며, 무단 복제 수정은 절대 불가입니다.
퍼가실 경우 댓글과 블로그 주소를 남기고 해당 게시물에 출처를 명확히 밝히세요.