Android/Apk build

[android] Proguard 유의사항

개미맨 2018. 3. 24. 16:30


Proguard를 적용하고 난 후에만 DTO, VO, POJO라고 불리는 클래스들이 데이터를 받아 오지 못하는 현상 발생.


Gson을 사용하여 jsonArray안의 jsonObject를 파싱하는 코드이다.

Type listType = new TypeToken<List<JsonAfTvHotIssue>>() {}.getType();
List<JsonAfTvHotIssue> list = gson.fromJson(jsonObjecInJsonArray, listType);

jsonArray가 담기는 list의 사이즈는 서버에서 보내준대로 잘 받아왔지만 list의 요소인 jsonObject의 값들은 null로 받아오지 못하였다.


JsonAfTvHotIssue의 변수 이름은 json key값들로 이루어져 있는데 Proguard를 통해 변수명이 변경되어서 값들을 받아오지 못한다.



해결방법


proguard-rules.pro프로가드 에서 json파싱에 이용되는 DTO, VO, POJO 클래스들을 난독화하지 않도록 설정해준다.


-keep class kr.co.tvlet.blt.dabom_video_module.data.** { *; }