安卓工作室的 Gradle 图标错误,清单合并

我一直看到这个信息,不知道如何解决它的好。

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 导入的

有什么想法吗?

113479 次浏览

这似乎是最主要的分级合并工具的错误。

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"添加到应用程序标记中

这告诉合并使用我的清单图标和主题,而不是其他库

Shimi _ tap 的答案是解决问题的正确方法。如果您想使用旧的合并工具,您可以将其添加到 build.gradle 文件中

机器人{ UseOldManifestMerger true }

这个问题的答案就足够了。 要记住的是,只选择你需要的。选择{图标,名称,主题,标签}。 我增加了 tools:replace="android:icon,android:theme",它不工作。我添加了 tools:replace="android:icon,android:theme,android:label,android:name",它不工作。当我加入 tools:replace="android:icon,android:theme,android:label"的时候它工作了。因此,在您的清单文件中找出确切的冲突是什么。

我有同样的问题,我这样修复它通过添加 xmlns:tools="http://schemas.android.com/tools"到主文件的顶部,并添加 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>

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

右键单击 res 文件夹 > new > android resource 目录 > resource type: mipmap ,现在放下任何图标,然后将其引用到清单文件中。分享这个,因为这个方法对我有用。

Android: icon:@draable/ic _ launcher”

机器人: icon = “@mipmap/ic _ launcher”

在谷歌了很长时间后得到了解决方案

只要得到你的 发射器和粘贴到您的牵引文件夹,

看看你的货单和 Change android: icon = “@draable/ic _ launcher”

清理您的项目并重建

希望能帮到你

如果这些都不起作用,关闭 Android Studio。继续 app/src/main,在一个文本编辑器中打开文件 AndroidManifest.xml (像 sublim) ,删除/替换错误行,保存并重新打开 android 工作室。

当应用程序的 minSdk 高于任何库的 minSdk 时,也会发生此错误。

app's minSdk >= libraries minSdk

我在将图标从可绘制图标更改为 mipmap 时遇到了这个问题。

我只是错过了台词

tools:replace="android:icon"

在旅客名单上。

我有同样的错误,只是这个代码解决了我的问题,我想与你分享:

Manifest.xml:

  • 将此代码添加到 xml 文件的顶部:

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

  • 然后补充道:

    tools:replace="android:icon,android:theme,android:label,android:name"到应用程序标记

如果属性值包含占位符(请参见下面的格式) ,则 清单合并将把这个占位符值与注入的 注入的值在 build.gradle 中指定 值是 ${ name } ,因为@是为链接保留的 上一次文件合并发生在合并结果产生之前 写出 android 清单文件,所有值都带有占位符 将与注入值交换。构建破坏将为 如果变量名未知,则生成。

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

对我来说,这个问题发生在更新 Google Play 服务之后。我使用的一个库在它的等级参考中使用了“ +”,比如

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

这造成了一个问题,因为该库所针对的最小版本比当前版本的 Google Play Services 所针对的版本要少。我在日志里找到了这个。

在你的 .gradle改变 MinSDK,例如:

  • build.gradle(模块: 应用程序)
    • 以前: minSdkVersion 9
    • 之后: minSdkVersion 14

等等。

只需将 xmlns:tools="http://schemas.android.com/tools"添加到您的清单标记中,然后您需要添加 tools:replace="android:icon" 之前 android:icon="@mipmap/ic_launcher"

我试了上面提到的所有方法

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

我正在测试这个应用程序

三星 Galaxy 8 ,OS 版本 < strong > 8.0.0

这真的是解决办法吗?

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

tools:replace="android:appComponentFactory,android:icon,android:theme,android:label,android:name"

这个问题发生在添加一个具有@draable/ic _ launcher 属性的第三方库时,因此 android 合并无法区分应用程序图标属性和库属性。若要解决此问题,请将此行添加到应用程序标记下的清单文件中

tools:replace="android:icon"

安卓工作室更新-北极狐

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
// DOCS: This is where we add the xmlns:tools reference
xmlns:tools="http://schemas.android.com/tools"
package="com.example.app">
// Permissions would go here
// ...
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
...
tools:ignore="GoogleAppIndexingWarning"
// DOCS: If you dont add this entry the xmlns:tools ref will not be found
tools:replace="android:icon">
<activity
android:name=".MainActivity"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />


<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>