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

工具:在Android清单中替换不替换

田成化
2023-03-14

我正在使用一个具有许多不同库依赖关系的gradle项目,并使用新的清单合并。在我的

<application tools:replace="android:icon, android:label, android:theme, android:name"
    android:name="com.example.myapp.MyApplcation"
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/application_name"
    android:logo="@drawable/logo_ab"
    android:theme="@style/AppTheme"
    >
....
</application>

然而,我收到了一个错误:

/android/MyApp/app/src/main/AndroidManifest.xml:29:9        Error:
Attribute application@icon value=(@drawable/ic_launcher) from AndroidManifest.xml:29:9
is also present at {Library Name} value=(@drawable/app_icon)
Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:26:5 to override

/android/MyApp/app/src/main/AndroidManifest.xml:30:9 Error:
Attribute application@label value=(@string/application_name) from AndroidManifest.xml:30:9
is also present at {Library Name} value=(@string/app_name)
Suggestion: add 'tools:replace="android:label"' to <application> element at AndroidManifest.xml:26:5 to override

/android/MyApp/app/src/main/AndroidManifest.xml:27:9 Error:
Attribute application@name value=(com.example.myapp.MyApplication) from AndroidManifest.xml:27:9
is also present at {Another Library}

Suggestion: add 'tools:replace="android:name"' to <application> element at AndroidManifest.xml:26:5 to override

/android/MyApp/app/src/main/AndroidManifest.xml:32:9 Error:
Attribute application@theme value=(@style/AppTheme) from AndroidManifest.xml:32:9
is also present at {Library Name} value=(@style/AppTheme)
Suggestion: add 'tools:replace="android:theme"' to <application> element at AndroidManifest.xml:26:5 to override

共有3个答案

罗凯
2023-03-14

尝试在gradle文件中重新排序依赖项。我不得不将违规库从列表的底部移到顶部,然后它就起作用了。

华项明
2023-03-14

我解决了同样的问题。我的解决方案:

  1. 在清单标记中添加xmlns: ols="http://schemas.android.com/tools"
  2. 添加工具:在清单标签中替换=...
  3. 移动android: tag=...在清单标签

示例:

 <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
              tools:replace="allowBackup, label"
              android:allowBackup="false"
              android:label="@string/all_app_name"/>
唐烨煜
2023-03-14

像这样声明您的清单标题

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

然后,可以将以下属性添加到应用程序标记中:

<application
    tools:replace="icon, label" ../>

例如,我需要更换图标和标签。祝你好运

 类似资料:
  • 我正在使用一个使用自己的Android:Theme的库,因此在构建时收到以下错误:错误:(55,9)任务':Contacit:ProcessDebugManifest'的执行失败。 清单合并失败:com.github.florent37:MaterialViewPager:1.0.3.2:11:18value=(@style/AppTheme)中也存在来自AndroidManifest.xml:4

  • Im在我的应用程序中使用image-chooser-library,它定义了android:icon,所以我需要重写这个属性以使gradle成功构建: 但我仍然得到以下信息: 清单合并失败:来自AndroidManifest.xml:20:9的属性application@icon value=(@drawable/icon)也存在于com.kbeanie:image-chooser-library

  • Git 对象是不可改变的,但它提供一种有趣的方式来用其他对象假装替换数据库中的 Git 对象。 replace 命令可以让你在 Git 中指定一个对象并可以声称“每次你遇到这个 Git 对象时,假装它是其他的东西”。 在你用一个不同的提交替换历史中的一个提交时,这会非常有用。 例如,你有一个大型的代码历史并想把自己的仓库分成一个短的历史和一个更大更长久的历史,短历史供新的开发者使用,后者给喜欢数据

  • 问题内容: 如何更换一个带有?当我运行时,我收到此错误消息。 我的代码: 问题答案: 是正则表达式。 会做你想要的。 下列… 产生… C:\ Documents and Settings \ HUSAIN \我的文档\我的调色板 C:\\ Documents and Settings \\ HUSAIN \\ My Documents \\我的调色板

  • 我有一个,当你点击next时,你可以在其中写一些东西。你写的文本会被写入另一个editText..它工作得很好。。但我想用textWatcher替换一些字母。。 示例:如何使S为$或O为@ 更新: 我的代码会将你在EditText中写的内容输入到下面的大文本视图中…当我按下按钮时,它会设置你写的文本,但我想将一些字母(例如S)替换为$…当我键入S时,什么都不会发生…只是S不会变成$… 我做错了什么

  • 编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将帮助其他人回答问题。 我有这个练习。为什么不使用reappeAll?我有一个错误:字符串索引超出范围:1