안드로이드 앱을 만들고 출시준비를 하기 위해서 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되었습니다.
'Android 개발 > PlayStore & 출시' 카테고리의 다른 글
데이터보안 양식 잘못됨 SPLIT_BUNDLE 13 정책 선언 # Google Play (0) | 2023.04.14 |
---|---|
안드로이드앱 내부배포시 Play 프로텍트 문제 해결 # 내부 테스트 (0) | 2020.10.08 |
GooglePlay 앱서명(app signing)으로 HashKey 만들기 (0) | 2017.09.12 |
PlayStore 출시전에 Log 제거하기 (0) | 2017.07.13 |
ProGuard Rules 정리 (Retrofit & OkHttp, JSoup, GSon, RxJava, Glide etc) (0) | 2017.07.08 |
앱 설치시 바로가기 아이콘 설치 구현 (0) | 2017.07.02 |
Android 앱 내에서 구글플레이 상세보기로 이동 링크 (0) | 2017.01.01 |
Android 마켓에 출시된 앱 업데이시 App 버전 관리 (2) | 2017.01.01 |
댓글