도리안의 개발 이야기 #185 - 안드로이드 앱 빌드시 발생한 MainDexListException 오류

in #zzan5 years ago



대문 제작: imrahelk

다른 앱의 일부 기능을 제 담당 앱으로 가져와야 하는 임무가 생겼습니다. SVN 서버로부터 소스를 다운받아 빌드를 해보았으나 아래와 같은 오류가 발생했습니다.

오류 내용

Caused by: com.android.builder.multidex.D8MainDexList$MainDexListException: com.android.tools.r8.errors.CompilationError: Program type already present: org.apache.commons.net.finger.FingerClient
...

위 오류는 여러 예들 중 하나구요. 외부로부터 가져온 라이브러리들의 클래스들이 이미 있다는 오류입니다. 처음에는 무작정 구글링으로 문제를 해결하려 했으나, 마땅한 실마리가 보이지 않았습니다. 그러나 Android Studio의 Project Explorer 뷰에 보이는 라이브러리 파일들을 보고 원인의 실마리를 찾을 수 있었습니다.

오류 원인

해당 모듈의 build.gradle 파일에 라이브러리 포함을 명시했지만, 프로젝트의 libs 폴더에도 동일한 라이브러리의 파일들이 오류의 원인이었습니다. 동일한 라이브러리들이 프로젝트에 포함되어 있으니 클래스 이름들의 충돌이 발생한 것입니다.

오류 해결

이 오류는 libs 폴더의 라이브러리 파일들을 삭제하여 해결하였습니다. 해결 방법은 의외로 간단했습니다. 보편적인 해결방법인 구글링이 오히려 삽질이 된 케이스였습니다. 하루 동안 헤맸는데, 늦게라도 찾아서 다행입니다.

문제의 원인이었던 파일들은 담당자에게 내일 삭제해 달라고 요청해야겠습니다. 지금은 다들 퇴근해서... ^^

aaronhong_banner.jpg

Sort:  

윽 읽어봐도 무슨 말인지 이해 못하겠네요 ㅎㅎㅎ
제게 프로그래밍은 너무나 어려운가봐요

저도 처음에 이게 뭔지 몰라서 좀 헤맸어요. ㅎㅎㅎ

어렵다. .
공부 해야겠어요

Posted using Partiko iOS

개발은 공부할게 무지 많아요.. ㅠㅠ

Coin Marketplace

STEEM 0.25
TRX 0.11
JST 0.032
BTC 62432.37
ETH 3003.22
USDT 1.00
SBD 3.78