안드로이드 개발

More than one file was found with OS independent path 'META-INF/INDEX.LIST' 해결 방법

피커 2021. 8. 10. 15:29
728x90
반응형

안녕하세요 피커입니다.

 

오늘은 안드로이드 개발 중에 발생하는 에러 중에 아래 문제를 해결 방법을 공유해보도록 하겠습니다.

 

문제 발생

아래와 같은 문구가 발생한다.

  -. More than one file was found with OS independent path 'META-INF/INDEX.LIST'

     또는 2 files found with path 'META-INF/DEPENDENCIES'.라고 표시됩니다.

 

문제 발생시 에러 메세지

위처럼 표시되며 빌드 에러가 발생합니다.

 

해결 방법

More than one file was found with OS independent path 'META-INF/INDEX.LIST'

해결방법은 간단합니다.

build.gradle (app)파일에 아래 3줄만 넣어주면 해결됩니다. (파란색 네모 참조)

에러 해결 방법

 

참고 자료 (Gradle build)

사용자 정의 빌드 구성

 

Gradle 및 Android 플러그인을 사용하여 다음 빌드 요소를 구성할 수 있습니다.

 

빌드 유형

 

빌드 유형은 Gradle이 앱을 빌드하고 패키징 할 때 사용하는 특정 속성을 정의하며 일반적으로 개발 수명 주기의 여러 단계를 중심으로 구성됩니다. 예를 들어 디버그 빌드 유형은 디버그 옵션을 활성화하고 디버그 키로 APK에 서명할 수 있는 반면 릴리스 빌드 유형은 배포를 위해 APK를 축소 및 난독화하고 릴리스 키로 서명할 수 있습니다. 앱을 빌드하려면 하나 이상의 빌드 유형을 정의해야 하며 Android Studio는 기본적으로 디버그 및 릴리스 빌드 유형을 생성합니다. 앱의 패키징 설정을 사용자 지정하기 위해 빌드 유형을 구성하는 방법을 알아보세요.

 

제품 버전

 

제품 버전은 앱의 무료 및 유료 버전과 같이 개발자가 사용자에게 릴리스할 수 있는 여러 버전의 앱을 의미합니다. 제품 버전을 사용자 지정하여 다른 코드와 리소스를 사용하면서 앱의 모든 버전에 공통적인 것을 공유하고 재사용할 수 있습니다. 제품 버전은 선택 사항이며 수동으로 생성해야 합니다. 다양한 버전의 앱을 만들려면 제품 버전을 구성하는 방법을 알아보세요.

 

빌드 변형

 

빌드 변형은 빌드 유형과 제품 버전의 교차 제품이며 Gradle이 앱을 빌드하는 데 사용하는 구성입니다. 빌드 변형을 사용하면 개발 중에 제품 버전의 디버그 버전을 빌드하거나 배포용 제품 버전의 서명된 릴리스 버전을 빌드할 수 있습니다. 개발자는 빌드 변형을 자체적으로 구성하지 않고 이를 형성하는 빌드 유형 및 제품 버전을 구성합니다. 추가 빌드 유형 또는 제품 버전을 생성하면 추가 빌드 변형도 생성됩니다. 빌드 변형 생성 및 관리에 대한 자세한 내용은 빌드 변형 구성 개요를 참조하세요.

 

매니페스트 항목

 

빌드 변형 구성의 매니페스트 파일에서 일부 속성에 대한 값을 지정할 수 있습니다. 이 빌드 값은 매니페스트 파일의 기존 값을 재정의합니다. 이는 모듈에 대해 여러 APK를 생성하려는 경우에 유용하며, 각 APK 파일에는 다른 애플리케이션 이름, 다른 최소 SDK 버전 또는 다른 대상 SDK 버전이 있습니다. 여러 매니페스트가 있는 경우 Gradle은 매니페스트 설정을 병합합니다.

 

의존성

 

빌드 시스템은 로컬 파일 시스템 및 원격 저장소에 대한 프로젝트 종속성을 관리합니다. 따라서 종속성에 대한 바이너리 패키지를 수동으로 검색, 다운로드 및 프로젝트 디렉터리로 복사할 필요가 없습니다. 자세한 내용은 빌드 종속성 추가를 참조하세요.

 

서명

 

빌드 시스템을 사용하여 빌드 구성에서 서명 설정을 지정하고 빌드 프로세스 중에 APK에 자동으로 서명할 수 있습니다. 빌드 시스템은 알려진 자격 증명을 사용하여 기본 키와 인증서로 디버그 버전에 서명합니다. 이렇게 하면 빌드 시 암호를 묻는 메시지가 표시되지 않습니다. 이 빌드에 대한 서명 구성을 명시적으로 정의하지 않는 한 빌드 시스템은 릴리스 버전에 서명하지 않습니다. 릴리스 키가 없는 경우 앱 서명에 설명된 대로 생성할 수 있습니다.

 

코드 및 리소스 감소

 

빌드 시스템을 사용하면 각 빌드 변형에 대해 서로 다른 ProGuard 규칙 파일을 지정할 수 있습니다. 앱을 빌드할 때 빌드 시스템은 R8과 같은 기본 제공 축소 도구를 사용하여 코드와 리소스를 축소하기 위한 적절한 규칙 세트를 적용합니다.

 

다중 APK 지원

 

빌드 시스템은 특정 화면 밀도 또는 ABI(Application Binary Interface)에 필요한 코드와 리소스만으로 다양한 APK를 자동으로 빌드할 수 있습니다. 자세한 내용은 다중 APK 빌드를 참조하세요.

 

반응형