-
[Error] Manifest merger failed : Attribute application@xxx...Android Error 2020. 11. 23. 16:57
Manifest merger failed : Attribute application@name value=(com.my.package) from AndroidManifest.xml:46:9–36
is also present at [com.sdk.name] AndroidManifest.xml:19:9–48 value=(com.sdk.package).
Suggestion: add ‘tools:replace=”android:name”’ to <application> element at AndroidManifest.xml:6:5–38:19 to override.원인
Android Manifest 파일 <application> 선언부에 name Attribute가 중복되어 발생하는 문제입니다.
해결 방법
에러 메시지의 제안대로 아래와 같이 <application> 선언부에 tools:replace=“android:name” 코드를 추가하여 중복되는 부분을 처리하여 수정 가능합니다.
보통 우리의 Android Manifest에는 name Attribute로 Application Class를 지정해주고 있습니다.
이번에 포함 시키면서 문제가 되고있는 라이브러리에 Android Manifest 파일을 확인해보니 <application> 선언부에 name Attribute가 선언되어 있었습니다.
(좌: 내 프로젝트 AndroidManifest.xml, 우: 라이브러리 AndroidManifest.xml)
name이 중복되어 발생하는 문제로 Manifest 속성에 우선순위를 지정해주어 해결해야 했습니다.
제 Android Manifest <application> 선언부에 tools:replace=“android:name”를 추가로 선언하여 name에 대한 우선순위를 높여줄 수 있었습니다. name 뿐만 아니라 theme, export.. 등 attr에 대한 속성의 우선순위를 높여줄 수 있어서 기억해두면 좋을 것 같습니다.
tools:replace에 대한 내용은 여기를 참고했습니다.
'Android Error' 카테고리의 다른 글
[Error] Program type already present 에러 처리 (0) 2020.01.08 [Error] Failed to resolve: com.android.support:support-v4:26 (0) 2017.11.06 [Error] Execution failed for task ':app:transformClassesWithDexForDebug' (1) 2016.11.09 [Error] Execution failed for task ':app:compileDebugJavaWithJavac' (2) 2016.11.07