Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 替换flavor中扩展类的清单意图筛选器_Android_Android Manifest_Intentfilter - Fatal编程技术网

Android 替换flavor中扩展类的清单意图筛选器

Android 替换flavor中扩展类的清单意图筛选器,android,android-manifest,intentfilter,Android,Android Manifest,Intentfilter,在我的应用程序中,flavor Lite有自己的清单,并用SplashActivityLite覆盖main的SplashActivity。主清单有一个用于Splash活动的启动器意图过滤器。但由于SplashActivityLite也有一个启动器意图过滤器,因此安装了两个应用程序图标 我已经尝试将tools:node=“replace”和tools:node=“merge”添加到活动标记SplashActivityLite中。 我已经尝试将tools:node=“replace”添加到意图过滤器

在我的应用程序中,flavor Lite有自己的清单,并用SplashActivityLite覆盖main的SplashActivity。主清单有一个用于Splash活动的启动器意图过滤器。但由于SplashActivityLite也有一个启动器意图过滤器,因此安装了两个应用程序图标

我已经尝试将tools:node=“replace”和tools:node=“merge”添加到活动标记SplashActivityLite中。 我已经尝试将tools:node=“replace”添加到意图过滤器中的每个属性(操作和类别标记)


当类名不相同时,如何覆盖主清单的意图过滤器?

根据您的评论,您的目标似乎是为这种风格创建一个合并清单,其中
SplashActivityLite
存在,但
SplashActivity
不存在

在flavor的清单中,我认为您需要有两个
元素(至少就与此问题的相关性而言):

  • 您可以指向
    SplashActivityLite
    ,然后使用
    MAIN
    /
    启动器正常运行

  • 另一个将指向
    SplashActivity
    ,并使用
    tools:node=“remove”
    将其从合并清单中删除

或者,您可以:

  • SplashActivityLite
    normalmanifest条目放在flavor中

  • main
    中,将
    android:enabled=“@bool/useMainSplash”
    打开
    SplashActivity

  • main
    中,将
    useMainSplash
    定义为
    true

  • 在flavor中,将
    useMainSplash
    定义为
    false

这将保留
SplashActivity
的清单条目,但将其禁用,使其无法启动


在这两种方法中,
SplashActivity
类都应该不受影响,因此
SplashActivityLite
可以毫无问题地扩展它。

您是否需要
SplashActivity
才能在flavor中使用(而不显示为启动程序图标)?或者,
SplashActivity
根本不需要这种口味吗?是的,它被使用了,但从SplashActivityLite扩展SplashActivityI的意义上说,我使用了第一种方法,但两者都是正确的,并且都有效