当前位置: 首页 > 知识库问答 >
问题:

清单合并失败错误

颛孙庆
2023-03-14

我在移动我目前的项目巨大的应用程序到Android Studio和Gradle的过程中。我目前被困在以下问题上:

Error:(87, 9) Execution failed for task ':App:processDebugManifest'.
> Manifest merger failed : Attribute application@label value=(@string/app_label) from AndroidManifest.xml:87:9
    is also present at ANDROID_APPLICATION:Library:unspecified:9:18 value=(@string/app_name)
    Suggestion: add 'tools:replace="android:label"' to <application> element at AndroidManifest.xml:82:5 to override

我尝试将以下属性添加到主AndroidManifest.xml文件中:

tools:replace="android:label, *App Name*"
tools:replace="android:label, @string/app_label"
tools:replace="android:label"

这些属性定义都不起作用。我做错了什么?

共有3个答案

丰誉
2023-03-14

如果你像我一样幸运,你可以用一个笨拙的变通方法手动解决这个问题。

AAR文件只是。使用。aar分机。在我的情况下,我解开了拉链。aar,从库的AndroidManifest中删除了有问题的android:label。xml,然后使用。aar扩展和一切似乎都与新的完美配合。啊。

仅供参考,这似乎是android gradle插件中的一个已知错误。

施俊驰
2023-03-14

合并清单文件时,与标签属性存在冲突。

通常,有三种类型的清单文件需要合并到一个单一的应用程序清单中,按优先级顺序排列:

  1. 特定于产品风格和构建类型的清单文件

冲突可以通过以下两种方式之一解决:-

从库(或更低级别)清单文件中删除冲突属性。

在本例中,ANDROID_应用程序:Library:unspecified:9:18 value=(@string/app_name)定义了一个与主应用程序不同的@string/app_name值。因此,如果不是必需的,那么删除它——只需从库文件的AndroidManifest中删除android:label=“@string/app_name”。xml文件。

有几个特殊的属性标记(在工具名称空间中)可以用来表示如何解决冲突的特定决策。

在这种情况下,要明确地使主应用程序的android:label覆盖任何其他(例如库文件)应用程序标签,请添加xmlns:tools=”http://schemas.android.com/tools“

下面是一个例子——在主应用程序的AndroidManifest中使用它。xml文件:

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

    <application
        android:label="@string/app_name"
        tools:replace="label"/>
</manifest>

这种方法也适用于任何其他相互冲突的属性;例如,如果图标属性也存在冲突,则可以将其更改为工具:replace=“label,icon”

冷善
2023-03-14

试试看:

将此添加到

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

将此添加到

tools:node="replace"

基于此,它应该覆盖所有元素。“将低优先级声明替换为带注释的声明。”

 类似资料:
  • 问题内容: 我正在将当前项目的大型应用程序移至Android Studio和Gradle中。我目前陷入以下问题: 我尝试将以下属性添加到主文件: 这些属性定义都不起作用。我究竟做错了什么? 问题答案: 试试看: 将此添加到 将此添加到 基于此,它应该覆盖所有元素。“将低优先级声明替换为带注释的声明。”

  • 错误:任务“:app:ProcessDebugManifest”执行失败。 清单合并失败:来自AndroidManifest.xml:13:9-42的属性application@icon value=(@mipmap/appiconnew)也存在于[com.pnikosis:materialish-progress:1.0]AndroidManifest.xml:13:9-45 value=(@d

  • 错误:清单合并失败:[com.android.support:support-compat:28.0.0]AndroidManifest.xml:22:18-91中的属性application@AppComponentFactory value=(Android.support.v4.app.CoreComponentFactory)也出现在[AndroidX.Core:Core:1.0.0]An

  • 我似乎得到了这样的错误:

  • 清单合并失败:[com.android.support.version@value value=(25.3.1)来自[com.android.support:design:25.3.1]androidmanifest.xml:27:9-31的属性元数据也出现在[com.android.support:RecyclerView-v7:26.0.0-alpha1]androidmanifest.xml

  • 清单合并失败:属性Application@AppComponentFactory value=(android.support.v4.app.CoreComponentFactory)来自[com.android.support:support-compat:28.0.0]AndroidManifest.xml:22:18-91 也存在于[androidx.core:core:1.0.0]andr