매니페스트 병합 실패 오류
현재 프로젝트의 거대한 애플리케이션을 Android Studio 및 Gradle로 옮기는 중입니다. 현재 다음 문제에 갇혀 있습니다.
Error:(87, 9) Execution failed for task ':App:processDebugManifest'.
> Manifest merger failed : Attribute application@label value=(@string/app_label) from AndroidManifest.xml:87:9
is also present at ANDROID_APPLICATION:Library:unspecified:9:18 value=(@string/app_name)
Suggestion: add 'tools:replace="android:label"' to <application> element at AndroidManifest.xml:82:5 to override
주 AndroidManifest.xml
파일에 다음 속성을 추가해 보았습니다 .
tools:replace="android:label, *App Name*"
tools:replace="android:label, @string/app_label"
tools:replace="android:label"
이러한 속성 정의는 작동하지 않습니다. 내가 도대체 뭘 잘못하고있는 겁니까?
이것을 시도하십시오 :
이것을 추가 <manifest/>
xmlns:tools="http://schemas.android.com/tools"
이것을 추가 <application/>
tools:node="replace"
을 바탕으로 이 , 모든 요소를 오버라이드 (override) 할 필요가 있습니다. "낮은 우선 순위 선언을 주석이 달린 선언으로 대체하십시오."
배경
매니페스트 파일이 병합 될 때 label
특성 과 충돌이 있습니다.
일반적으로 단일 결과 앱 매니페스트로 병합해야하는 세 가지 유형 의 매니페스트 파일이 여기에 우선 순위가 있습니다.
- 제품 버전 및 빌드 유형별 매니페스트 파일.
- 애플리케이션의 기본 매니페스트 파일입니다.
- 라이브러리 매니페스트 파일.
해결 방법
충돌은 다음 두 가지 방법 중 하나로 해결할 수 있습니다.
충돌하는 레이블 제거
라이브러리 (또는 하위 수준) 매니페스트 파일에서 충돌하는 속성을 제거합니다.
이 경우는 ANDROID_APPLICATION:Library:unspecified:9:18 value=(@string/app_name)
갖는 @string/app_name
메인 프로그램에서 상이 정의한 값. 따라서 필요하지 않은 경우 제거 하십시오. android:label="@string/app_name"
라이브러리 파일의 AndroidManifest.xml
파일 에서 제거 하십시오.
충돌에 대한 자동 해결을 허용하는 속성 추가
있다 몇 가지 특별한 속성 마커 충돌을 해결하는 방법에 대한 구체적인 결정을 표현하기 위해 사용될 수있다 (도구 네임 스페이스가).
이 경우, 명시 적으로 주요 애플 리케이션의 원인하기 위해 android:label
, 다른 (예를 들어 라이브러리 파일) 응용 프로그램 라벨에 우선 추가 할 xmlns:tools="http://schemas.android.com/tools"
받는 정의 <manifest>
노드 및 tools:replace="label"
받는 <application>
노드입니다.
다음은 예입니다. 기본 애플리케이션의 AndroidManifest.xml
파일 에서 사용 합니다.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mycompany.myapp"
xmlns:tools="http://schemas.android.com/tools">
<application
android:label="@string/app_name"
tools:replace="label"/>
</manifest>
이 접근 방식은 다른 충돌 속성에서도 작동합니다. 예를 들어 icon
속성도 충돌하는 경우로 변경 될 수 있습니다 tools:replace="label, icon"
.
운이 좋았다면 해키 해결 방법을 사용하여 수동으로 문제를 해결할 수 있습니다.
AAR 파일은 확장자가 .aar 인 .zip 파일입니다. 제 경우에는 .aar의 압축을 풀고 android:label
라이브러리의 AndroidManifest.xml
.
참고로, 이것은 android gradle 플러그인의 알려진 버그로 보입니다 .
같은 문제를 해결했습니다. 나를위한 솔루션 :
xmlns:tools="http://schemas.android.com/tools"
매니페스트 태그에 줄 추가tools:replace=..
매니페스트 태그에 추가android:label=...
매니페스트 태그에서 이동
저도 같은 문제에 직면했고 많은 연구 끝에
- 최소 SDK 버전은 사용중인 모듈과 동일해야합니다. 예 : 모듈 최소 SDK 버전은 14이고 앱 최소 SDK 버전은 9입니다. 동일해야합니다.
- If build version of your app and modules not same. Again it should same
In short, your app build.gradle file and manifest should have same configurations
- There's no duplicacy like same permissions added in manifest file twice, same activity mention twice
- If you have delete any activity from your project, delete it from your manifest file as well
- Sometimes its becuase of label, icon etc tag of manifest file a) add the xmlns:tools line in the manifest tag b) add tools:replace= or tools:ignore=in the application tag Example
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.slinfy.ikharelimiteduk"
xmlns:tools="http://schemas.android.com/tools"
android:versionCode="1"
android:versionName="1.0" >
<application
tools:replace="icon, label"
android:label="myApp"
android:name="com.example.MyApplication"
android:allowBackup="true"
android:hardwareAccelerated="false"
android:icon="@drawable/ic_launcher"
android:theme="@style/Theme.AppCompat" >
</application>
</manifest>
By considering these points in mind, you will get rid of this manifest merger failed issue Check my post: This issue is due to issue in Manifest file or build.gradle file. You can check my post https://wordpress.com/post/dhingrakimmi.wordpress.com/23
I just removed
android:label="@string/app_name
from the manifest file
and it worked!
ReferenceURL : https://stackoverflow.com/questions/28095703/manifest-merger-failed-error
'Programing' 카테고리의 다른 글
C # 영역과 같은 CSS의 영역? (0) | 2021.01.05 |
---|---|
열기 실패 : EACCES (권한 거부 됨) (0) | 2021.01.05 |
Python의 날짜 차이 (분) (0) | 2021.01.05 |
기본 및 필드 생성자를 자동 생성하는 이클립스 바로 가기는 무엇입니까? (0) | 2021.01.05 |
두 줄 이상의 JSON이 포함 된 파일을 Pandas에로드 (0) | 2021.01.05 |