본문으로 바로가기

[Android] Dex 문제 해결

category 📱 Mobile/📱 (old) Flutter v 1.0 2020. 7. 15. 23:25

firebase를 사용하던 중 다음과 같은 오류를 마주쳤다.

 

 

https://developer.android.com/studio/build/multidex

 

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

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

developer.android.com

D8: Cannot fit requested classes in a single dex file (# methods: 97532 > 65536)
com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: 
The number of method references in a .dex file cannot exceed 64K.
Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html

 

해결 방법 1.

 

android > build.gradle의 defeaultConfig 부분의 minSdkVersion를 21로 수정한다 (안드로이드 5) 이 버전 이상 부터는 multi dex를 지원하기 때문에 이 문제는 해결된다.

defaultConfig {
    applicationId "darrengwon.tistory.com"
    // minSdkVersion을 21로 올려줘야 한다.
    minSdkVersion 16
    targetSdkVersion 28
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
}

 

해결 방법 2.

 

androidX를 사용 중이라면 android > build.gradle에 다음과 같이 적용한다.

 

defaultConfig에 multiDexEnabled를 true로

defaultConfig {
    applicationId "darrengwon.tistory.com"
    minSdkVersion 16
    targetSdkVersion 28
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
    
    // multiDexEnabled를 true로 설정
    multiDexEnabled true
}

 

하단 dependencies에 multidex를 implementation 하면 된다.

현재 무슨 버전이 최신인 지는 상단에 첨부한 안드로이드 문서를 참고하자.

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support:multidex:2.0.1'
}

 

 

만약 AndroidX를 사용하지 않고 있다면 다음 버전의 멀티 덱스를 넣으면 된다.

dependencies {
  implementation 'com.android.support:multidex:1.0.3'
}

darren, dev blog
블로그 이미지 DarrenKwonDev 님의 블로그
VISITOR 오늘 / 전체