我正在开发一个Android库项目,在默认的src/main/AndroidManifest.xml中,MainActivity是启动器活动.
为了别的原因,我创造了产品口味.是的,如果我想在不同的产品口味中触发/显示不同的活动炎,它是完美的.不过,我想保持默认的启动活动从的src/main /文件夹,而登录其他口味的活动为新的发射活动.因此,对于不同的产品风格,我可以有不同的启动器活动,从中我仍然可以在src/main /中启动原始的"启动器"活动.
有人可以告诉我如何实现这一目标吗?非常感谢.
笔记:
if (BuildConfig.FLAVOR.equals("flavorName"))不希望向原始启动器活动添加代码.因为我不想从别人那里修改生产代码(这是一个库项目).
我试过manifestmerger和tools:replace,但好像它不工作intent-filter(我注意到,对于意图过滤器的元素融合政策总是).
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
如果这可能有效,请您指导我如何使其工作?谢谢.
android android-manifest android-intent android-productflavors
有没有办法在 gradle 中“混合”多种口味?
例如,假设我有两种口味:Red和Blue。现在假设我有两种口味,我希望它们具有(子口味,如果你喜欢):Complex和Simple.
到目前为止我所知道的是,这需要我创建四种口味:Red-Complex, Red-Simple, Blue-Complex, Blue-Simple。
我不清楚这应该如何在项目中构建。如何定义Red在Red-Complex和之间共享Red-Simple的Complex代码,但也有在Red-Complex和之间共享的代码Blue-Complex?我不想在口味之间复制/粘贴代码。
在gradle中实现这一目标的最佳方法是什么?
如何使用manifest命令"replace"通过具有相同名称但在flavor包中的活动替换主包中的活动?
com.name.project/main/
-ActivityA
Run Code Online (Sandbox Code Playgroud)
替换为
com.name.project/pro/
-ActivityA
Run Code Online (Sandbox Code Playgroud)