com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536 에러 해결하기

Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
>com.android.build.api.transform.TransformException: 
com.android.ide.common.process.ProcessException: 
java.util.concurrent.ExecutionException: 
com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536

DJI 드론 SDK를 쓰다 보니 이런 에러에 직면했다.
구글링을 해보니 메소드 갯수가 65535개로 한정되어 있는데 각종 라이브러리를 첨가하다 보니 넘어서서 발생하는 에러라고 한다.

이럴경우 dex파일을 분할해서 하도록 해주면 된다는데 이게 초창기엔 별도 라이브러리로 제공되다가 SDK가 버전업을 하면서 그냥 기본으로 추가된듯 싶다.
인터넷에선 manifest파일도 수정하고 gradle 파일에 multiindex 라는 라이브러리도 추가하고 했는데 막상 해보니 그냥 gradle에 한줄만 추가 하면 된다.

테스트 했던 프로젝트는 compileSdkVersion 26 (O) 이고 targetSdkVersion 22 (Lolipop)이다.

defaultConfig {
	...
	multiDexEnabled true
	...
}

gradle에 추가해야 하는 값은 위와 같다.


Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다