请在下面找到来自android的Manifest Merger文档的节选。
tools:node= " replace "将低优先级声明替换为注释1。
现在我有一个库与XXX主题和一个应用程序与主题YYY。在编译YYY时,由于合并和建议的解决方案是替换主题,我得到了错误。
我想知道我的库和应用程序之间,哪个是低优先级?也会发生什么,当我使用工具:替换在我的应用程序清单的主题替换?简而言之,谁来取代谁?
库的清单优先级低于应用程序的清单。这是基于这个页面:https://developer.android.com/studio/build/manifest-merge#merge_priorities
如果你将tools:replace
添加到应用程序的主题中,那么这将用YYY覆盖库的主题XXX。如果您尝试将tools:replace
添加到库的主题中,这不会引发错误,但也不会产生任何效果,也就是说,它不会强制 XXX主题。
我认为原因是,库首先被编译,它的清单被合并到应用程序的清单中,所以合并的方向因此被定义。
根据我对合并优先级的理解,它们指的是构建变体、abi等,而不是应用/库关系。