ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Android] Cannot fit requested classes in a single dex file
    모바일/Android 2020. 3. 23. 01:29

    Android 앱(APK) 파일에는 Dalvik Executable(DEX) 파일 형식의 실행 가능한 바이트 코드 파일이 포함됩니다. Dalvik Executable 사양은 단일 DEX 파일 내에서 참조될 수 있는 메서드의 총 개수를 65,536으로 제한하며 여기에는 Android 프레임워크 메서드, 라이브러리 메서드, 자체 코드에 있는 메서드가 포함됩니다. 

     

    따라서 앱 및 앱이 참조하는 라이브러리에서 메서드가 65,536개를 초과하면 앱이 Android 빌드 아키텍처의 제한에 도달했음을 알리는 빌드 오류가 발생합니다.

     

    minSdkVersion이 21 이상으로 설정되어 있을 경우 multidex가 기본적으로 사용 설정되므로 multidex 지원 라이브러리가 필요하지 않습니다.

    그러나 minSdkVersion이 20 이하로 설정되어 있으면 multidex 지원 라이브러리를 사용하고 앱 프로젝트를 다음과 같이 수정해야 합니다.

     

    본인은 minSdkVersion이 20 이하이므로 후자의 방법을 따랐습니다.

     

    아래의 코드와 같이 build.gradle(module) 파일을 수정하여 multidex를 사용 설정하고 multidex 라이브러리를 종속성으로 추가합니다.

     

        android {
            defaultConfig {
                ...
                minSdkVersion 15
                targetSdkVersion 28
                multiDexEnabled true
            }
            ...
        }
    
        dependencies {
          implementation 'com.android.support:multidex:1.0.3'
        }
        

     

     

    출처 : https://developer.android.com/studio/build/multidex?hl=ko

     

    64K가 넘는 메서드의 앱에 관해 multidex 사용 설정  |  Android 개발자  |  Android Developers

    앱이 여러 DEX 파일을 빌드하고 읽을 수 있도록 하는 multidex라는 앱 구성의 사용설정 방법에 관해 알아보세요.

    developer.android.com

     

    댓글

Designed by Tistory.