domino8788 / SKHUMap

SKHU MAP
1 stars 0 forks source link

Android Cannot fit requested classes in a single dex file 에러 발생 #66

Closed domino8788 closed 4 years ago

domino8788 commented 4 years ago

branch : DevAssistanceTool 45cf857

65 진행중 build.gradle 에 implementation 'com.google.firebase:firebase-firestore:21.2.1' 추가 후

Android Cannot fit requested classes in a single dex file 에러 발생

domino8788 commented 4 years ago

https://duzi077.tistory.com/198 에 의하면 APK 파일 빌드 시 포함되는 DEX 파일에는 참조할 수 있는 메서드의 수가 65636 으로 제한되는데 해당 에러는 앱 내의 모든 메서드가 65636개를 넘어서 발생한 것이라고 한다.

롤리팝(5.0, API 21) 미만의 플랫폼 버전에서는 Dalvik 이라는 런타임을 사용하는데 이 런타임은 APK당 하나의 DEX 바이트코트 파일로 앱을 제한한다. 하지만 그 이상의 버전에서는 ART 라는 런타임을 사용하는데 이 런타임은 여러 개의 DEX파일 로드를 지원한다.

그러므로 minSdkVersion 이 21 이상이라면 ART 런타임을 사용하므로 해당 에러가 해결되지만 롤리팝 버전을 지원하면서 여러개의 DEX 파일을 로드하려면 multidex 지원 라이브러리를 사용해야한다.

간단하게 build.gradle(app)의 defaultConfig에 multiDexEnabled true 를 설정하면 된다.

domino8788 commented 4 years ago

위의 방안으로 57d91d2 커밋을 통해 버그를 해결했으므로 이슈를 닫는다.