'태그를 입력해 주세요.'에 해당되는 글 1건

  1. 2012.04.04 [안드로이드] Jackson JSON 사용시 ProGuard 설정

저같은 경우 안드로이드 앱 개발시 JSON 데이터 처리를 위해 주로 Codehaus의 jackson json 라이브러리 (jackson-core-asl-x.x.jar, jackson-mapper-asl-x.x.jar)를 사용합니다. 

이렇게 앱에서 Jackson JSON 라이브러리를 사용하는 경우 ProGuard 설정을 어떻게 해줘야하는지 제대로 정리된 자료가 별로 없더군요.

그동안은 릴리스 빌드시에 잘못된 proguard 설정때문에 발생하는 에러나, 앱 실행시에 잘못된 소스난독화로 인한 런타임 에러를 만날때마다

임시방편으로 설정의 의미도 모른채 설정을 조금씩 고쳐가면서 소뒷걸음질하다 운좋게 에러를 해결하곤 했습니다. 에러가 없게 설정했다고 해도 왜 그런 설정이 필요한지 자세한 이유를 알지는 못했죠.

미루고 미루다 이제야 ProGuard 홈페이지 문서 Gson에서 사용하는 proguard 설정을 참고하여 아래와 같이 정리해보았습니다.

실제로 제가 개인적으로 개발중인 앱에 적용해서 빌드하고 테스트해보니 이상이 없었습니다.

# 어노테이션 보존

-keepattributes *Annotation*,EnclosingMethod


# 제너릭 타입 정보 보존

-keepattributes Signature


# Jackson이 참조하는 다른 라이브러리(joda-time 등) 없다는 경고 제거

-dontwarn org.codehaus.jackson.**


# java.lang.NoSuchFieldError: PUBLIC_ONLY 에러 제거

-keepnames class org.codehaus.jackson.** { *; }


# Jackson에 의해 JSON데이터와 매핑(바인딩)되는 모델(POJO) 클래스 보존

-keep public class my.app.model.** { *; }


# 모델 클래스외에 getter/setter 보존이 필요한 경우

#-keep public class my.app.** {

#  public void set*(***);

#  public *** get();

#}



Posted by 에코지오
,