How to remove activity from the application? Here is a simplified example, I have an application that has the following two options (Paid and Free). The application is small and has only 3 actions (MainActivity, ActivityOne and ActivityTwo). A paid application does not need any restrictions, since it will use the full code base. However, the free application requires that it has MainActivity and ActivityTwo available to the user, not ActivityOne. How can I make "Manifest Merge" when compiling the code so that ActivityOne is not present in the free version? In other words, how to create src / free / AndroidManifest.xml so that there is no ActivityOne in the free application?
The following is the build.gradle file for the application:
apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion "21.1.2" defaultConfig { applicationId "com.example.calculator" minSdkVersion 21 targetSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } productFlavors { paid { applicationId "com.example.paid" resValue "string", "app_name", "Paid Calculator" versionName "1.0-full" } free { applicationId "com.example.free" resValue "string", "app_name", "Free Calculator" versionName "1.0-free" } } sourceSets { paid { manifest.srcFile 'src/paid/AndroidManifest.xml' } free { manifest.srcFile 'src/free/AndroidManifest.xml' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:cardview-v7:21.0.0' compile 'com.android.support:recyclerview-v7:21.0.0' compile 'com.android.support:design:22.2.0' compile 'com.android.support:appcompat-v7:22.2.0' }
The following is the manifest file for the application. It is located in src / main / AndroidManifest.xml :
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.calculator"> <application android:name="com.example.calculator.ui.activities.AppController" android:allowBackup="true" android:icon="@drawable/ic_launcher" android:theme="@style/AppTheme"> <activity android:name=".ui.activities.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> <activity android:name=".ui.activities.ActivityOne" android:label="@string/title_activity_one" android:parentActivityName=".ui.activities.MainActivity"> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".ui.activities.MainActivity" /> </activity> <activity android:name=".ui.activities.ActivityTwo" android:label="@string/title_activity_two" android:parentActivityName=".ui.activities.MainActivity"> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".ui.activities.MainActivity" /> </activity> </application> </manifest>
source share