Android Studio Gradle 아이콘 오류, 매니페스트 합병


141

이 메시지를 계속보고 있으며이를 해결하는 방법을 잘 모릅니다.

Error:(43, 9) Attribute application@icon value=(@drawable/new_app_icon) from AndroidManifest.xml:43:9
    is also present at com.github.erizet.signala:signala-longpolling:0.20:7:18 value=(@drawable/ic_launcher)
    Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:40:5 to override
:OpenBook:processDebugManifest FAILED
Error:Execution failed for task ':OpenBook:processDebugManifest'.
> Manifest merger failed with multiple errors, see logs

추가 시도 android:replace="android:icon"내 아이콘으로도 매니페스트에 를 .

나는 삭제를 시도했다 android:icon="@drawable/ic_launcher라이브러리에서 maven에서 가져 오기 때문에 빌드 할 때 계속 돌아옵니다.

어떤 아이디어?


이 문제는 매니페스트 파일 태그에 문제가있을 때 발생합니다. 응답 확인하시기 바랍니다 stackoverflow.com/a/39509659/2732632
Kimmi Dhingra

매니페스트에 중복 권한을 추가했을 때도 같은 문제가 발생했습니다.
Cloy

답변:


342

gradle에 대한 mainfest Merger 도구의 결함 인 것 같습니다.

http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger

내 매니페스트 태그에 추가하여 해결 xmlns:tools="http://schemas.android.com/tools"

그런 다음 추가 tools:replace="android:icon,android:theme" 응용 프로그램 태그에

합병이 다른 라이브러리가 아닌 매니페스트 아이콘과 테마를 사용하도록 지시합니다.

그것이 도움이되기를 바랍니다.


6
문제는 여전히 지속됩니다. Android Studio 1.1에서 작업
볼링

1
감사! 나를 위해 일했습니다
Sandeep

4
안드로이드 2.0의 최신 버전. 작동하지 않는. 그는 그것이 쓸모 곧 될 것입니다 다른 세대를 저장하는 의미 경우 누구든지 대답하면이 Q를 업데이트해야
Karue 벤슨 Karue

3
오늘부터 Studio 2.2에서이 문제를 해결하고이 문제를 해결하지
Prasad

2
gradle 2.2.0이 설치된 Android Studio 2.2에서는 작동하지 않습니다.
DysaniazzZ

54

나는 같은 문제가 있는데, xmlns:tools="http://schemas.android.com/tools"mainfest 파일의 맨 위에 추가 하여 다음 과 같이 수정하고 tools:replace="android:icon"다음과 같이 추가하십시오.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"  // add tools line here 
    package="yourpackage">


    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:replace="android:icon"> ///add this line 

.....

</application>

</manifest>

1
Android Studio 2.2 및 gradle 2.2.0에서는 작동하지 않습니다.
DysaniazzZ

훌륭한 답변
Gundu Bandgar

10

나는 같은 오류가 있습니다.이 코드는 내 문제를 해결합니다. 당신과 공유하고 싶습니다.

에서 Manifest.xml:

  • 이 코드를 xml 파일 위에 추가하십시오.

    xmlns:tools="http://schemas.android.com/tools"

  • 그런 다음 추가했습니다 :

    tools:replace="android:icon,android:theme,android:label,android:name" 응용 프로그램 태그에


@DysaniazzZ, Android Studio에 의존하지 않습니다. 메시지 로그를 참조하십시오.
Adnan Abdollah Zaki

알았어
DysaniazzZ

@Funwise, 메시지 로그를 확인하십시오. 안드로이드 스튜디오에 의존하지 않는 것 같습니다.
Adnan Abdollah Zaki

@ adnan9011, 내 문제는 매니페스트 파일에 중복 권한이 있습니다.
Darush

9

shimi_tap의 대답으로 충분합니다. 기억해야 할 것은 필요한 것만 선택한다는 것입니다. {아이콘, 이름, 테마, 라벨} 중에서 선택하십시오. 추가했는데 tools:replace="android:icon,android:theme"작동하지 않습니다. 추가했는데 tools:replace="android:icon,android:theme,android:label,android:name"작동하지 않습니다. 내가 추가했을 때 작동합니다 tools:replace="android:icon,android:theme,android:label". 따라서 매니페스트 파일에서 충돌이 정확히 무엇인지 확인하십시오.


1
Android Studio 2.2 및 gradle 2.2.0에서는 작동하지 않습니다.
DysaniazzZ

5

그냥 추가 xmlns:tools="http://schemas.android.com/tools"매니페스트 태그에, 그리고 당신은 추가해야합니다 tools:replace="android:icon" 전에 android:icon="@mipmap/ic_launcher" .


3

이 오류는 앱의 minSdk가 라이브러리의 minSdk보다 높은 경우에도 발생합니다.

app's minSdk >= libraries minSdk

1
그래서 해결책은 무엇입니까?
itzhar

2

많은 시간을 보낸 후 솔루션을 얻었습니다.

ic_launcher를 얻으십시오 . drawables 폴더에 붙여 넣으십시오.

매니페스트로 이동하여 android : icon = "@ drawable / ic_launcher"를 변경하십시오.

프로젝트 정리 및 재 구축

그것이 당신을 돕는 희망


2

아이콘을 드로어 블에서 밉맵으로 변경하는 데이 문제가 발생했습니다.

나는 단지 라인을 그리워했다

tools:replace="android:icon"

매니페스트에서.


1

어떤 이유로 안드로이드 스튜디오는 드로어 블 폴더에서 앱 아이콘을 호출하는 것을 좋아하지 않습니다. 이 경우 res 폴더 아래에 밉맵 리소스 디렉토리를 만들었습니다.

res 폴더> 새로 작성> android 자원 디렉토리> 자원 유형 : 밉맵을 마우스 오른쪽 단추로 클릭 한 후 거기에 아이콘을 놓은 후 해당 파일을 매니페스트 파일로 참조하십시오. 이 방법이 저에게 효과적이기 때문에 이것을 공유했습니다.

android : icon : @ drawable / ic_launcher "

android : icon = "@ mipmap / ic_launcher"


나를 위해 스타일을 설정하는 것이 가장 좋았다android:theme="@style/AppTheme"
CrandellWS

1

아무것도 작동하지 않으면 Android Studio를 닫습니다. app / src / main으로 이동하여 숭고한 텍스트 편집기에서 AndroidManifest.xml 파일을 열고 eros 행을 제거 / 교체하고 android studio를 저장하고 다시여십시오.


1

속성 값에 자리 표시자가 포함 된 경우 (아래 형식 참조) 매니페스트 병합자는이 자리 표시 자 값을 주입 된 값으로 바꿉니다. 주입 된 값은 build.gradle에 지정됩니다. @는 링크 용으로 예약되어 있으므로 자리 표시 자 값의 구문은 $ {name}입니다. 마지막 파일 병합이 발생한 후 병합 된 Android 매니페스트 파일이 작성되기 전에 플레이스 홀더가있는 모든 값이 주입 된 값으로 교체됩니다. 변수 이름을 모르면 빌드가 중단됩니다.

에서 http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger#TOC-Build-error


0

Shimi_tap의 답변은 문제를 해결하는 올바른 방법입니다. 이전 병합 도구를 사용하려면 build.gradle 파일에 추가하십시오

안드로이드 {useOldManifestMerger true}


2
"1.0에서는 이전 매니페스트 병합을 호출하는 기능이 제거되었습니다. .." tools.android.com/tech-docs/new-build-system/user-guide/…
devgrg

org.gradle.api.Project 유형의 프로젝트 ': app'에서 인수 [true]에 대해 메소드 useOldManifestMerger ()를 찾을 수 없습니다.
DysaniazzZ

0

나를 위해이 문제는 Google Play 서비스를 업데이트 한 후에 발생했습니다. 내가 사용하고있는 라이브러리 중 하나는 "+"를 사용하여이 라이브러리를 등급 참조에 통합했습니다.

compile 'com.google.android.gms:play-services:+'

해당 라이브러리에서 타겟팅 한 최소 버전이 현재 버전의 Google Play 서비스에서 타겟팅 한 최소 버전보다 낮았 기 때문에 문제가 발생했습니다. 나는 단순히 로그를 보면서 이것을 발견했습니다.


0

당신에 .gradle변화 MinSDK, 예를 들어 :

  • build.gradle (모듈 : 앱)
    • 전에: minSdkVersion 9
    • 후: minSdkVersion 14

기타


0

위에서 언급 한 모든 솔루션을 시도했습니다.

에서 Manifest.xml:

  • 이 코드를 매니페스트 태그 내의 xml 파일 위에 추가하십시오.

    xmlns:tools="http://schemas.android.com/tools"

  • 그런 다음 추가했습니다 :

    tools:replace="android:icon,android:theme,android:label,android:name" 응용 프로그램 태그에

그러나 아무것도 작동하지 않았습니다. 에 위치한 XML 파일을 삭제해야했습니다.

mipmap-anydpi-v26 / ic_launcher_round.xml

나는 응용 프로그램을 테스트하고 있었다

OS 버전 8.0.0 이 설치된 Samsung Galaxy 8

정말 해결책입니까?


0

AndroidManifest.xml 파일에서 다음을 application노드에 추가하십시오 .

tools:replace="android:appComponentFactory,android:icon,android:theme,android:label,android:name"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.