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
반응형
'Tips > Android' 카테고리의 다른 글
Android 로그 자동 저장하는 법 (0) | 2013.02.24 |
---|---|
[스크랩] 이벤트 처리 메커니즘 (0) | 2013.02.24 |
ResolverActivity - 여러 개의 Activity가 Intent에 매칭될 때 (0) | 2013.02.24 |
Ant빌드시 [javac] Note: Recompile with -Xlint:deprecation 에러 해결법 (0) | 2013.02.24 |
Remote debug를 이용한 target debugging (0) | 2013.02.24 |