【问题标题】:Android studio Gradle icon error, Manifest MergerAndroid studio Gradle 图标错误,Manifest Merger
【发布时间】:2014-08-21 19:24:48
【问题描述】:

我一直看到这条消息,不知道如何解决它。

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 导入的,所以在我构建时它不断返回

有什么想法吗?

【问题讨论】:

标签: android gradle android-studio


【解决方案1】:

似乎是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"

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

希望对你有帮助谢谢

【讨论】:

  • 我的问题仍然存在。在 Android Studio 1.1 中工作。
  • 谢谢!为我工作
  • 最新版本的android 2.0。不工作。如果他的意思是拯救几代人,那么回答的人应该更新这个 Q,否则它很快就会没用
  • 从今天开始的 Studio 2.2 都有这个并且没有解决这个问题
  • 不适用于带有 gradle 2.2.0 的 Android Studio 2.2。
【解决方案2】:

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

机器人{ 使用OldManifestMerger true }

【讨论】:

【解决方案3】:

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" 时有效。因此,找出清单文件中的冲突到底是什么。

【讨论】:

  • 不适用于 Android Studio 2.2 和 gradle 2.2.0。
【解决方案4】:

我有同样的问题,我通过在 mainfest 文件的顶部添加 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 Studio 2.2 和 gradle 2.2.0。
  • 精彩回答
【解决方案5】:

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

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

android:icon:@drawable/ic_launcher"

android:icon="@mipmap/ic_launcher"

【讨论】:

【解决方案6】:

经过长时间的谷歌搜索后得到了解决方案

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

转到您的清单并更改 android:icon="@drawable/ic_launcher"

清理你的项目并重建

希望对您有所帮助

【讨论】:

    【解决方案7】:

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

    【讨论】:

      【解决方案8】:

      当您的应用的 minSdk 高于任何库的 minSdk 时,也会出现此错误。

      app's minSdk >= libraries minSdk
      

      【讨论】:

      • 那么,解决办法是什么?
      【解决方案9】:

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

      我只是错过了这条线

      tools:replace="android:icon"

      在清单中。

      【讨论】:

        【解决方案10】:

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

        Manifest.xml

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

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

        • 然后补充:

          tools:replace="android:icon,android:theme,android:label,android:name" 到应用标签

        【讨论】:

        • @DysaniazzZ ,它不依赖于 Android Studio 。查看消息日志。
        • 好的,我看看。
        • @Funwise,检查你的消息日志,我认为它不依赖于 android studio。
        • @adnan9011,我的问题是 Manifest 文件中的权限重复。
        【解决方案11】:

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

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

        【讨论】:

          【解决方案12】:

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

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

          这造成了一个问题,因为该库所针对的最低版本低于 Google Play 服务当前版本所针对的版本。我通过简单地查看日志发现了这一点。

          【讨论】:

            【解决方案13】:

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

            • build.gradle(模块:app)
              • 之前:minSdkVersion 9
              • 之后:minSdkVersion 14

            等等

            【讨论】:

              【解决方案14】:

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

              【讨论】:

                【解决方案15】:

                我尝试了上面提到的所有解决方案

                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 操作系统版本 8.0.0

                这真的是一个解决方案吗?

                【讨论】:

                  【解决方案16】:

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

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

                  【讨论】:

                    【解决方案17】:

                    当您添加具有@drawable/ic_launcher 属性的第三方库时会出现此问题,因此android 合并无法区分您的应用图标属性和库的属性。要解决此问题,请在清单文件中的应用程序标记下添加这一行

                    tools:replace="android:icon"
                    

                    【讨论】:

                      【解决方案18】:

                      Android Studio 的更新 - 北极狐

                      <?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>
                      

                      【讨论】:

                        猜你喜欢
                        • 2018-11-06
                        • 2019-07-31
                        • 1970-01-01
                        • 2017-07-28
                        • 2019-01-15
                        • 2017-11-23
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        相关资源
                        最近更新 更多