【问题标题】:Android Studio 6.0 merger failAndroid Studio 6.0 合并失败
【发布时间】:2014-07-29 13:23:03
【问题描述】:

刚刚更新到最新版本的 Android Studio,我在 AndroidManifest 文件中收到此错误

清单合并失败:来自 AndroidManifest.xml:48:9 的属性 application@icon value=(@drawable/project_launcher_icon) 也出现在 com.github.anupcowkur:reservoir:1.1.1:6:45 value=(@drawable/ic_launcher) 建议:将 'tools:replace="icon"' 添加到 AndroidManifest.xml:44:5 的元素以覆盖

我尝试在清单中添加 tools:replace="@drawable/ic_drawer" 但出现此错误:

Error:(44, 5) tools:replace specified at line:44 for attribute tools:drawable/ic_drawer, but no new value specified

有什么想法吗?

【问题讨论】:

  • 我想知道我们的清单文件中预期会有哪些变化,以使它们与新的合并兼容。
  • 您是否考虑过更改此@connector 接受的答案?
  • 请告诉我一件事工具:替换我应该在我的项目清单的应用程序标签内还是在我的库的应用程序标签内添加这个请告诉我这对我真的有帮助吗??

标签: android android-studio


【解决方案1】:

遵循 Android Studio 的建议并添加以下属性 tools:replace="icon" 应该可以让它成功构建您的应用,而无需使用旧的清单合并(这确实不是一个非常具有前瞻性的解决方案)。

当然,您首先必须声明命名空间“工具”才能使用它:

 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:tools="http://schemas.android.com/tools"
              package="com.sample.app" >

【讨论】:

  • 新的清单合并可能会遇到很多问题。所有新的变化都记录在这里:tools.android.com/tech-docs/new-build-system/user-guide/…
  • 请告诉我一件事工具:替换我应该在我的项目清单的应用程序标签内还是在我的库的应用程序标签内添加这个请告诉我这对我真的有帮助吗??
【解决方案2】:

您应该添加tools:replace="icon",就像错误消息中所说的那样。

可以使用tools:replace="icon,name,theme"语法替换其他属性

【讨论】:

  • 请告诉我一件事工具:替换我应该在我的项目清单的应用程序标签内还是在我的库的应用程序标签内添加这个请告诉我这对我真的有帮助吗??
  • @SudhanshuGaur 将其添加到您项目的应用程序标签中
  • 经过一番研究发现应该换成tools:replace="icon, label, theme" 或者其他组合,包含Manifest中所有呈现的属性。
【解决方案3】:

看这里: All markers belong to the Android tools namespace, therefore you must declare the namespace in any AndroidManifest.xml containing at least one marker : xmlns:tools="http://schemas.android.com/tools"

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.tests.flavorlib.app"
**xmlns:tools="http://schemas.android.com/tools"**>

<application
    android:icon="@drawable/icon"
    android:label="@string/app_name"
   **tools:replace=”icon, label”**/>
</manifest>

您应该添加 xlms:tools 和 tools:replace 清单文件中的这两行。

【讨论】:

  • 实际显示在哪里添加项目的点,就像你可以隐含地说明在哪里添加它一样。干得好
  • 请告诉我一件事工具:替换我应该在我的项目清单的应用程序标签内还是在我的库的应用程序标签内添加这个请告诉我这对我真的有帮助吗??
【解决方案4】:

Android Studio 0.6 使用新的清单合并工具。这个新的合并是在插件的 0.10 版中引入的。从 0.11 开始,gradle 插件默认使用此工具。

为了恢复到旧的清单合并,请在您的 build.gradle 中添加以下配置:

android { useOldManifestMerger true }

【讨论】:

  • 我会说这不是解决方案,而是临时补丁。事实上,他们将取消对 Android Studio 1.0 上旧清单合并的支持。
【解决方案5】:

对我来说,这很有效。尝试在主模块(项目)清单文件中添加代码:

添加 xmlns:tools="http://schemas.android.com/tools" 在您的清单标记中

添加 tools:replace="android:icon,android:label,android:theme" 在您的应用程序标签中

这些将使 Android Studio 知道要使用的图标、标签和主题来自该清单,而不是来自包含的其他项目。

【讨论】:

  • 请告诉我一件事工具:替换我应该在我的项目清单的应用程序标签内还是在我的库的应用程序标签内添加这个请告诉我这对我真的有帮助吗??
猜你喜欢
  • 2017-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-24
  • 1970-01-01
  • 2015-01-27
相关资源
最近更新 更多