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

Adroid Studio:tools:replace和tools:ignore在AndroidManifest中有什么不同

黄伟
2023-03-14

在这个论坛的帮助下,我刚刚修复了一个错误,即“清单合并失败”。解决方案是将工具:替换为工具:ingore在

共有2个答案

尉迟跃
2023-03-14

你的应用程序只能有一个清单文件,但你添加到应用程序中的每个库都可以有自己的清单文件,而且当你使用多个模块项目时,每个模块都可以有自己的清单文件,因此当你构建应用程序时,所有这些清单文件都将合并到一个文件中。您的主清单文件具有更高的优先级,因此您可以强制传递哪些参数,并使用工具替换其他清单文件的参数:replace,例如,您有两个清单文件。

低优先级清单(来自库):

<activity android:name="com.example.ActivityOne"
    android:theme="@oldtheme"
    android:exported="false"
    android:windowSoftInputMode="stateUnchanged">

高优先级清单(您的主要清单):

<activity android:name="com.example.ActivityOne"
    android:theme="@newtheme"
    android:exported="true"
    android:screenOrientation="portrait"
    tools:replace="android:theme,android:exported">

在主清单文件中,您正在强制主清单文件的android:theme和android:exported,因此合并清单结果如下:

<activity android:name="com.example.ActivityOne"
    android:theme="@newtheme"
    android:exported="true"
    android:screenOrientation="portrait"
    android:windowSoftInputMode="stateUnchanged">

这些例子来自这里的谷歌文档

现在,对于属性工具:ignore,可以在xml文件中使用它来消除lint警告。它没有解决任何问题,只是隐藏错误并忽略它。因此,在大多数情况下,用这种技术解决问题是错误的,所以当你使用它时。您应该有充分的理由忽略该错误(即请求受保护的权限并忽略lint警告,因为您知道在您的情况下,权限将被授予)

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      ...>
    <uses-permission android:name="android.permission.SET_TIME"
        tools:ignore="ProtectedPermissions"/>

你可以阅读工具:忽略在谷歌这里留档

公孙茂学
2023-03-14

当我们使用具有自己清单文件的多个依赖项/库/模块时,apk只能包含一个清单。然后,在构建应用程序期间,gradle将所有清单合并为一个清单。在合并期间,如果一个或多个依赖项存在一些冲突,则会出现此错误。有关详细信息,请阅读本文

 类似资料:
  • 本文向大家介绍getComputedStyle和element.style有什么不同?相关面试题,主要包含被问及getComputedStyle和element.style有什么不同?时的应答技巧和注意事项,需要的朋友参考一下 element.style 只能获取内联样式属性 getComputedStyle() 可以获取所有样式属性

  • 本文向大家介绍frame和bounds有什么不同?相关面试题,主要包含被问及frame和bounds有什么不同?时的应答技巧和注意事项,需要的朋友参考一下 答案:frame指的是:该view在父view坐标系统中的位置和大小。(参照点是父亲的坐标系统) bounds指的是:该view在本身坐标系统中 的位置和大小。(参照点是本身坐标系统)  

  • 本文向大家介绍"attribute"和"property"有什么不同?相关面试题,主要包含被问及"attribute"和"property"有什么不同?时的应答技巧和注意事项,需要的朋友参考一下 property 是DOM中的属性,是JavaScript里的对象 可以读取标签自带属性,包括没有写出来的 不能读取attribute设置的属性 获取方式:读:element.property;     

  • 除了上面还有什么不同吗?。如何工作Rowmapper内部和返回类型是列表?。

  • 我知道ElasticSearch是基于Apache Lucene构建的,但我想知道两者之间的显著差异。

  • 我刚刚发现Android studio有点奇怪:它在构建中有一些配置选项。覆盖AndroidManifest中指定内容的gradle文件。xml文件。 例如,我在中有以下几行: 这是覆盖相应的标记在: 我真的不喜欢在两个不同的文件中传播相同的设置,所以我想知道我是否可以安全地从构建中删除它。gradle或AndroidManifest。xml以及在哪里保留它更有意义。