Android Manifest合并混淆关于工具:替换



请在下面找到来自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等,而不是应用/库关系。

最新更新