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

Answers:


342

这似乎是graf的mainfest合并工具的错误。

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中工作。
2015年

1
谢谢!为我工作
Sandeep,2015年

4
最新版本的android 2.0。不工作。如果他指的是节约代否则将是无用的快谁回答应该更新这个问答
Karue本森Karue

3
从今天起的Studio 2.2都有这个问题,而nt正在解决这个问题
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 2016年

绝妙的答案
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,请检查您的消息日志,我认为这不取决于android studio。
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"



2

经过大量的时间了解之后的解决方案

只需获取ic_launcher并将其粘贴到drawables文件夹中,

转到清单并更改android:icon =“ @ drawable / ic_launcher”

清理项目并重建

希望对您有帮助


2

我遇到了将图标从可绘制更改为mipmap的问题。

我只错过了电话

tools:replace="android:icon"

在清单中。


1

由于某些原因,Android Studio不喜欢从可绘制文件夹中调用应用程序图标。因此,在那种情况下,我在res文件夹下创建了mipmap资源目录。

右键单击res文件夹>新建> android资源目录>资源类型:mipmap,然后在其中放置任何图标,然后将其引用到清单文件中。分享此方法,因为这种方法对我有用。

android:icon:@ drawable / ic_launcher“

android:icon =“ @ mipmap / ic_launcher”


对我来说,设置样式似乎最好,android:theme="@style/AppTheme" 请参见-> gist.github.com/CrandellWS/4d284b11b5bca3054bddf8f511e49ae9
CrandellWS

1

如果没有任何效果,请关闭Android Studio。转到app / src / main,在文本编辑器(如sublime)中打开文件AndroidManifest.xml,删除/替换错误行,保存并重新打开android studio。


1

当属性值包含占位符(请参见下面的格式)时,清单合并会将该占位符值与注入值交换。注入的值在build.gradle中指定。占位符值的语法为$ {name},因为@保留用于链接。在最后一次合并文件之后,并且在写出最终合并的android清单文件之前,所有带有占位符的值都将与注入的值交换。如果变量名未知,则会生成构建破坏。

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



0

对我来说,此问题是在更新Google Play服务之后发生的。我正在使用的其中一个库在其gradel参考中使用“ +”合并了该库,例如

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

我在测试应用程序

带有操作系统版本8.0.0的Samsung Galaxy 8

这真的是解决方案吗?


0

在AndroidManifest.xml文件中,将以下内容添加到application节点:

tools:replace="android:appComponentFactory,android:icon,android:theme,android:label,android:name"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.