热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何使用新的清单合并(AndroidStudio和Gradle)?

如何解决《如何使用新的清单合并(AndroidStudio和Gradle)?》经验,为你挑选了1个好方法。



1> Eugen Pechan..:

1.禁用元素

您始终可以在应用清单中明确禁用权限和功能,并覆盖任何库值.我发现你可以禁用库中的元素.

请考虑以上链接中的以下代码:


  

通过在清单中包含此代码,可确保合并找到具有android:name="foo.bar.alias"属性的任何元素,并在具有该android:name="zoo"属性时删除该元素.它只删除"zoo"元数据.不是活动别名.如果在主清单中指定它,它将对目前已合并的任何内容(库中的元素)有效.

例#2

既然你要求一个活动的例子,这就是我提出的:


此行将使合并删除android:name="com.example.ui.MyActivity"具有已合并到目前为止的属性的所有活动.因此,如果您在主清单中指定它,它将有效地删除com.example.ui.MyActivity可能已从库中合并的任何条目.

2.覆盖库中的属性

其中值合并的顺序描述了这里的部分清单文件排序.基本上它是这样的:库,然后主要清单,然后味道和构建类型显示,如果你使用它们.如何覆盖库中的属性?

什么是构建类型?

默认为"debug"和"release".您可以定义自己的设置并覆盖设置,例如signedproguard.出于您的目的,您可以说它等同于运行配置.

它的工作原理如下:您将默认值和共享值放在main清单中.然后在flavor清单中覆盖您需要的值.谷歌"gradle flavors"获取更多信息.

3.完全禁用清单合并

在Android Gradle Build中禁用Manifest Merger

android.applicationVariants.all { variant ->
    variant.processResources.manifestFile = file('src/main/AndroidManifest.xml')
    variant.processManifest.enabled=false
}

你把这个文件放在哪个文件中?

模块的末尾(不是根项目)build.gradle.

来自依赖关系的清单是否合并?

是的,他们是(他们是图书馆).

有没有办法阻止合并某些图书馆清单?

不是我知道的,抱歉.

5.任何教程?

取决于你想要实现的目标.到目前为止,它始终对我开箱即用.

例如http://www.myandroidsolutions.com/2014/04/10/android-gradle-manifest-merge/

清单合并文档(链接如下).

我不知道任何视频.

6.我应该注意什么?

如果您对额外权限等有疑问,可以检查生成的清单.它位于project/module/build/intermediates/manifests/full/[flavor]/build-type/AndroidManifest.xml.

酱:http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger


推荐阅读
author-avatar
神马26688_463
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有