6

I have used build.gradle(app) to create different flavors of apk. But installing different flavors of same apk overrides the previous one. I want to create different apks to run on same device simultaneously. I want to create different apk with different appicon which can be installed on same device and run simultaneously. Any link or tutorial or direct help is appreciated.

Thanks in advance.

SimpleCoder
  • 1,665
  • 1
  • 21
  • 34

3 Answers3

4

Change the PackageName of the flavor

Sample Gradle File

apply plugin: 'com.android.application'

android {

    lintOptions {
        abortOnError false
    }


    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 16
    }

    buildTypes {
        debug {
            minifyEnabled false
            zipAlignEnabled true
        }
        release {
            minifyEnabled true
            zipAlignEnabled true
        }
    }
    productFlavors {
        Flavor1 {
            applicationId "com.falvor.one" //This is where you change the package name
        }
        Flavor2 {
            applicationId "com.falvor.two"
        }
    }
}

Flavor Hierarchy in Android

- src/main/java
- src/flavor1
--------------Java
----------------Your java files
--------------res
----------------Drawable
  • src/flavor2/java

For more understanding, follow this link

Murtaza Khursheed Hussain
  • 15,176
  • 7
  • 58
  • 83
3

You need to create new productFlavors in your gradle file, like this;

productFlavors {
        Flavor1 {
            applicationId 'com.project.fl1'
            signingConfig signingConfigs.xx
            versionCode 1
        }
        Flavor2 {
            applicationId 'com.project.fl2'
            signingConfig signingConfigs.xx
            versionCode 1
        }
        Flavor3 {
            applicationId 'com.project.fl3'
            signingConfig signingConfigs.xx
            versionCode 1
        }
}

The important thing here is to give each one a unique applicationId, they can then be installed on the same phone.

vguzzi
  • 2,420
  • 2
  • 15
  • 19
2

This post explains exactly how to achieve what you want step by step.

Most importantly:

  1. add the product flavours container to the app build.gradle file

    productFlavors { free { applicationId "antoniocappiello.com.buildvariantsexample.free" } paid { applicationId "antoniocappiello.com.buildvariantsexample.paid" } }

  2. create inside src a directory with the exact name of the product flavour that you want to look different from the main variant, for example with the configuration at step 1 the directory name could be paid or free . And inside that directory create the subfolder res/drawable where you are going to place your new app launcher icon.

Directory structure example

  • 1
    @SimpleCoder you were looking for a tutorial and I provided it to you. Didn't you liked my answer http://stackoverflow.com/a/33332966/5485531 ? – Antonio Cappiello Oct 27 '15 at 13:51