so I'm trying to use gradle to create a separate buildType, but that buildType needs to use different characteristics for the same Activity. In this case, my splash activity needs a different intent-filter depending on buildType. Is this possible?
I get the following error in gradle:
:Tinder:processUtestManifest
[AndroidManifest.xml:67, AndroidManifest.xml:38] Trying to merge incompatible /manifest/application/activity[@name=com.<company_name>.activities.ActivitySplash] element:
<activity
@android:name="com.<company_name>.activities.ActivitySplash"
<intent-filter>
<action
-- @android:name="android.intent.action.MAIN">
<activity
@android:name="com.<company_name>.activities.ActivitySplash"
<intent-filter>
<action
++ @android:name="com.apphance.android.LAUNCH">
Let me post a full solution that works. In this case, the application manages intent filters for both images and videos. However, for a particular flavor, we only want to capture videos, not images.
Say your activity is defined like this:
For your flavor named myFlavor, that I assume you already have, you have to have this in your
AndroidManifest.xml
file:Sync with Gradle, and check the final manifest, that is usually in
myApp/build/intermediates/manifests/full/myFlavor/debug/AndroidManifest.xml
Change the AndroidManifest in the consuming app/lib from:
To:
It's not possible to merge the intent-filter separately at the moment so I would recommend copying the whole
<activity>
node intoand
and it'll get merged automatically into the final manifest (of course you also want to remove it from the main manifest).