안드로이드를 개발하다 보면, 많은 오픈 라이센스 라이브러리를 사용하게 됩니다.
문제점은 이 라이브러리에 기능적으로 문제가 없더라도
Android Studio에서 빌드를 하게 되면 아래와 같은 에러가 뜨면서 빌드가 되지 않습니다.
com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
이유는 구글에서 메소드 갯수에 제한을 두고 있기 때문에
그 갯수를 넘으면 빌드가 되지 않습니다.
그래서 위와 같은 에러가 발생했을 때는 라이브러리를 줄일수 있을 만큼 줄이는게 해결 책입니다.
아마 가장 많이 발생하는 부분은 google service를 사용할 때 입니다.
build.gradle 파일에 google service를 추가할때 아래와 같이 많이들 넣습니다.
compile 'com.google.android.gms:play-services:7.3.0'
위와 같이 넣을 경우 google service에서 지원되는 모든 라이브러리가 들어갑니다.
map, wearable, gcm등등 사용하지 않는 라이브러리도 들어가게 되죠.
그 함수의 양이 얼마나 방대하겠습니까!
그래서 저걸 사용하는 라이브러리만 가져오도록 바꾸세요.
gcm을 사용한다면 아래와 같이 하는 겁니다.
compile 'com.google.android.gms:play-services-base:7.3.0'
compile 'com.google.android.gms:play-services-gcm:7.3.0'
그럼 다른 라이브러리는 포함되지 않기 때문에 함수의 수가 확 줄겠죠^^
그런다음 빌드를 해보면 문제 없이 빌드가 진행 될 것입니다.^^
구글 서비스 목록은 아래 사이트에서 참조하세요.
https://developers.google.com/android/guides/setup#split
참고 하세요.
참고 사이트 : http://stackoverflow.com/questions/30385873/google-play-services-finished-with-non-zero-exit-value-2
'개발 > 안드로이드' 카테고리의 다른 글
AsyncTask 병렬처리 (0) | 2016.07.04 |
---|---|
Firebase Remote Config 소개 (0) | 2016.06.29 |
이클립스에서 Path for project must have only one segment. 오류 뜨는 경우 해결법 (0) | 2016.06.23 |
APK 빌드시 'Duplicate files copied in APK {파일 이름}' 해결하기 (0) | 2016.06.23 |
volley 사용법 (0) | 2016.06.23 |
댓글