본문 바로가기
Android/Exceptions

Manifest merger failed : Attribute application@appComponentFactory

by featherwing 2019. 6. 28.
반응형

 

build.gradle 파일에서 implementation 된 일부 구글 라이브러리들의 버전을 업데이트 해 준 뒤

 

해당 오류가 발생되며 빌드가 되지 않는 경우가 발생하였습니다.

 

제 경우에는 Firebase라이브러리 중 일부를 18.0.0으로, Crashlytics 라이브러리를 2.10.1로 업데이트 해준 뒤 발생하였는데요

 

 

빌드 시 오류의 내용은 아래와 같습니다.

 

Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to element at AndroidManifest.xml:5:5-19:19 to override.

 

 

발생원인은  Android P 이후 구글의 서포트 라이브러리들이 androidx를 사용하게 되었기 때문입니다.

 

 

해당 부분 오류는 

 

gradle.properties 파일에 아래의 두줄을 추가 해 주면 해결됩니다.

 

android.useAndroidX=true
android.enableJetifier=true

 

 

서포트 라이브러리들의 네이밍들이 android 에서 androidx 로 교체되었기 때문에 신규버전을 사용할 경우에는

 

본래 기존 프로젝트를 리펙터링해서 이전해주어야 하지만,

 

상기의 방법으로 gradle.properties에 두줄을 추가시켜주는것만으로 계속 사용할 수 있습니다.

 

 

 

좀 더, 자세한 사항은 아래의 [개발자노트 : AndroidX로 이전]을 확인해주세요.

 

https://developer.android.com/jetpack/androidx/migrate

반응형

댓글