我尝试过的方法:
- 启用清单合并,但没有起作用;
- 使用activity-alias也不行。
最后我发现只需添加一行代码即可解决问题:
<category android:name="android.intent.category.DEFAULT" />
==================================================
为了让大家更加清楚,我将再一次说明问题和解决方案:
在 src/main/java
目录下有一个 MainActivity
文件,并且在对应的 src/main/AndroidManifest.xml
文件中指定了 MainActivity 作为启动活动:
==================================================
<activity android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这是一个非常简单的部分,现在我们开始处理产品口味。
由于某些原因,在一个产品口味中,我不想覆盖MainActivity,而是有一个YetAnotherMainActivity
。目标是将YetAnotherMainActivity
设置为产品口味中的新启动活动,并且仍然能够调用MainActivity
。
下面是如何将产品口味中的新活动设置为新的启动活动:
flavorX/AndroidManifest.xml
:
<activity android:name="com.example.YetAnotherMainActivity"
android:label="@string/title_yet_another_main_activity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
没错,原来如此简单。只需添加android.intent.category.DEFAULT
即可。
tools:node="remove"
将会移除原始的启动器活动(即我想要保留的活动)”。而我在原始问题中提到,“我想要保留默认的启动器活动”。 - Jing Li