作者:神马26688_463 | 来源:互联网 | 2023-05-28 11:48
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".您可以定义自己的设置并覆盖设置,例如signed或proguard.出于您的目的,您可以说它等同于运行配置.
它的工作原理如下:您将默认值和共享值放在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