ERROR:D8: Cannot fit requested classes in a single dex file (# methods: 93246 > 65536)
com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:
The number of method references in a .dex file cannot exceed 64K.
firestore를 사용하기 위해 cloud_firestore라이브러리를 다운받고 앱을 실행할 때 발생한 오류.
단일 dex파일에 있을 수 있는 최대 메서드 수가 64k인데, 앱에서 64k이상의 메서드로 빌드를 하려고 해서 생긴 오류이다. 이 오류를 해결하려면 메서드를 여러 dex파일로 분할해야한다. (이러한 기능을 multidex라고 한다.)
multidex기능을 활성화하자.
android/app/build.gradle에 가서 아래 코드를 추가한다.
android{
defaultConfig {
// 추가
multiDexEnabled true
}
}
dependencies {
// androidx 사용하면 첫번째 줄, 사용안하면 두번째 줄 입력
implementation "androidx.multidex:multidex:2.0.1"
implementation "com.android.support:multidex:1.0.3"
}
사용하는 sdk버전이 21이상이면 별다른 작업 없이
minSdkVersion 값을 21로 변경하면 된다. (나는 이렇게 해결했음)
minSdkVersion 21
참고
https://developer.android.com/studio/build/multidex?hl=ko
(androidx는 Android Support Library의 문제점(유지보수, 버전관리)을 개선하고, 새로운 기능을 추가하여 출시된 새로운 라이브러리라고 함)