在我的应用程序中,flavor Lite有自己的清单,并用SplashActivityLite覆盖main的SplashActivity。主清单有一个用于SplashActivity的启动器意图过滤器。但由于SplashActivityLite也有一个启动器意图过滤器,因此安装了2个应用程序图标。
我尝试将工具:node="replace"和工具:node="merge"添加到活动标记SplashActivityLite中。我尝试添加工具:node="replace"到intent过滤器中的每个属性(操作和类别标记(。
当类名不相同时,如何覆盖主清单的意图过滤器?
根据您的评论,您的目标似乎是为这种风格合并清单,其中SplashActivityLite
存在,但SplashActivity
不存在。
在味道的清单中,我认为你需要有两个<activity>
元素(至少,就与这个问题的相关性而言(:
-
使用
MAIN
/LAUNCHER
<intent-filter>
,可以指向SplashActivityLite
并正常 -
另一个将指向
SplashActivity
,并让tools:node="remove"
从合并的清单中删除它
或者,您可以:
-
在风味中有
SplashActivityLite
正常清单条目 -
在
main
中,在SplashActivity
上具有android:enabled="@bool/useMainSplash"
-
在
main
中,将useMainSplash
定义为true
-
在风味中,将
useMainSplash
定义为false
这将保留SplashActivity
的清单条目,但禁用它,使其无法启动。
在任何一种方法中,SplashActivity
类都应该不受影响,因此SplashActivityLite
可以毫无问题地扩展它。