개발새발 - IT 기술블로그

에러 내용 

빌드를 진행하던 도중 아래와 같은 내용의 에러가 발생하면서 빌드가 캔슬 됨.

 

2 files found with path 'META-INF/DEPENDENCIES'.
Adding a packagingOptions block may help, please refer to
https://developer.android.com/reference/tools/gradle-api/7.3/com/android/build/api/dsl/ResourcesPackagingOptions
for more information

 

에러 원인

프로젝트 gradle에 implement 되어있는 외부 라이브러리들의 버전이 변경 혹은 추가 되면서 기존에 존재하던 Meta 파일과 캐시가 중복되는 현상이 발생했기 때문.

 

해결 방법

근본적인 해결방법은 라이브러리의 버전을 맞춰주는 것인데, 외부 라이브러리를 여러개 사용하다보면 서로 다른 라이브러리들 간의 버전 충돌이 충분히 생길수가 있다.

 

또한, 그 버전은 라이브러리를 사용하는 개발자가 수정이 불가능하기 때문에 성공가능성이 낮다.

 

따라서 gradle에서 프로젝트 파일들을 패키징 하는 과정에서 중복되는 Meta 파일들을 제외시키는 방법을 사용한다.

그 방법으로 아래 코드를 app gradle 파일 android 블록 내부에 작성한다.

packagingOptions {
    exclude 'META-INF/DEPENDENCIES'
}

 

필자는 Dependency 항목에서만 해당 에러가 검출되었기 때문에 위와같이 'META-INF/DEPENDENCIES'만 작성하였는데,

다른 부분에서 해당 에러가 발생하였다면 exclude '에러 내용' 을 아래에 추가로 기입해주면 된다.