[Android] dex file 과 multiDexEnabled 알아보기 (Cannot fit requested classes in a single dex file.Try supplying a main-dex list. # methods: XXXXXX > 65536 해결)
-
반응형
2023-11-30
1. 이슈 발생
Cannot fit requested classes in a single dex file.Try supplying a main-dex list. # methods: XXXXXX > 65536
위와 같은 이슈가 발생하였는데 오류의 내용은 하나의 dex file은 65536을 넘길 수 없으니 당신의 앱이 main-dex list를 허용하라는 이슈이다. 우선 dex file이 뭔지 알아보자.
2. dex file?
Android 애플리케이션(APK) 파일에는 DEX(Dalvik Executable) 파일 형식의 실행 가능한 바이트코드 파일이 포함되어 있으며, 여기에는 앱을 실행하는 데 사용되는 컴파일된 코드가 포함되어 있다. 즉 자신의 앱을 실행시키기 위한 바이트코드 덩어리라고 볼 수 있다. 또한 해당 dex 파일 하나당 65536개의 메서드만 정의될 수 있어 해당 부분이 초과될 경우 multiDexEnabled 옵션을 true 값으로 변경하여 여러 개의 dex 파일을 운영 가능하게 해야 한다.
3. 해결 방법
해결 방법은 간단하다. 아래의 build.gradle 참고 코드와 같이 자신의 안드로이드 앱 build.gradle 에 defaultConfig 쪽에 multiDexEnabled true를 선언하고 dependencies 에는 implementation 'com.android.support:multidex:1.0.3' 선언하면 된다.