Tips/Android

proguard - 타겟 빌드 시 ClassNotFoundException, NoClassDefFoundError 가 나는 경우

dextto™ 2013. 2. 24. 10:22

App. 개발팀으로 자리를 옮기고 개발환경을 꾸미다가 삽질을 해서 정리합니다.


안드로이드 타겟 빌드할 때 분명히 클래스파일이 있고, 컴파일도 제대로 된 것 같은데 ClassNotFoundException, NoClassDefFoundError가 발생하는 경우가 있습니다.

컴파일러가 코드를 최적화하는 과정에서 링크를 빼버리는 것 같습니다.
이때는 다음처럼 해 주면 잘 동작합니다.

1. Adroid.mk파일에 다음 옵션을 추가
LOCAL_PROGUARD_FLAG_FILES := proguard.flags

2. proguard.flags 파일에 아래 내용을 기술
-dontshrink



원래는 Proguard(컴파일러가 최적화 시키지 못하도록) 하는 부분을 기술해줘야 하는데
위와 같이 하면 무조건 최적화 옵션을 꺼버립니다.

자세한 사항은 다음에서 확인하세요.
http://developer.android.com/guide/developing/tools/proguard.html 
http://shadowxx.egloos.com/10763147

반응형