본문 바로가기
Android 개발/PlayStore & 출시

com.android.dex.DexIndexOverflowException 대처하기

by Developer88 2017. 7. 5.
반응형

안드로이드 앱을 만들고 출시준비를 하기 위해서 SignedAPK를 만들려고 하면,

DexIndexOverflowException이 나는 경우가 있습니다.


65536개로 메소드 숫자를 제한해 놓았기 때문인데요.

라이브러리를 많이 쓰다보면,  라이브러리에 들어있는 많은 메소드들 때문에 

생각보다 많은 메소드가 App안에 존재하게 되는 것이지요.


많은 메소드를 제공하는, Google Play Service 가 원인이 되는 경우가 많은데요.

오늘은 그 해결 방법을 정리해겠습니다.



1. Google Play Service 에서 필요한 라이브러리만 추가


구글 맵을 사용하여 앱을 만들려고, Google의 개발자 사이트를 참조하다 보면,

아래와 같이 play-services 전체 라이브러리를 추가하라고 나오는데요.

https://developers.google.com/android/guides/setup#split




위와 같은 경우에 아래 이미지의 리스트에 있는 수 많은 라이브러리를 한꺼번에 가져오는 것이 됩니다.

심지어 계속 추가가 될꺼구요.


해결 방법은 여기서 필요한 라이브러리만 추가하는 것입니다.

(당연하게도 구글 개발자 사이트에서도, 6만5천개의 메소드수 제한 때문에, compile이 않되는 경우에는 필요한 것만 쓰라고 설명이 나와있습니다~)




위의 라이브러리중 필요한 라이브러리만 선택해서 추가하는 것이 중요합니다.


저의 경우에는 com.google.android.gms:play-services-maps와 com.google.android.gms:play-services-location 이 필요하여 추가하였더니,

이상없이 Compile되었습니다.


728x90

댓글