我在移动我目前的项目巨大的应用程序到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"
这些属性定义都不起作用。我做错了什么?
如果你像我一样幸运,你可以用一个笨拙的变通方法手动解决这个问题。
AAR文件只是。使用。aar分机。在我的情况下,我解开了拉链。aar,从库的AndroidManifest中删除了有问题的
,然后使用。aar扩展和一切似乎都与新的完美配合。啊。android:label
。xml
仅供参考,这似乎是android gradle插件中的一个已知错误。
合并清单文件时,与标签
属性存在冲突。
通常,有三种类型的清单文件需要合并到一个单一的应用程序清单中,按优先级顺序排列:
冲突可以通过以下两种方式之一解决:-
从库(或更低级别)清单文件中删除冲突属性。
在本例中,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”
。
试试看:
将此添加到
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