Android - How To Get Flavor's ApplicationId

后端 未结 2 1844
天命终不由人
天命终不由人 2020-12-31 08:34

I\'m building an app wit different build variant flavors. The flavors are \"Free\" and \"Paid\". I want to create some logic on my java classes which should only get trigger

相关标签:
2条回答
  • 2020-12-31 08:51

    I found best solution to get all values like APPLICATION_ID, BUILD_TYPE, FLAVOR, VERSION_CODE and VERSION_NAME.

    Just write : Log.d("Application Id : ",BuildConfig.APPLICATION_ID); in your code. It will provide APPLICATION_ID of your flavor.

    BuildConfig.java

    public final class BuildConfig {
      public static final boolean DEBUG = Boolean.parseBoolean("true");
      public static final String APPLICATION_ID = "";
      public static final String BUILD_TYPE = "debug";
      public static final String FLAVOR = "";
      public static final int VERSION_CODE = 1;
      public static final String VERSION_NAME = "";
    }
    

    For more details you can refer this link : http://blog.brainattica.com/how-to-work-with-flavours-on-android/

    0 讨论(0)
  • 2020-12-31 09:09

    I would use build configuration variables in your product flavors. Something along the lines of:

    productFlavors {
        free {
            applicationId "com.example.free"
            resValue "string", "app_name", "Free App"
            versionName "1.0-free"
            buildConfigField "boolean", "PAID_VERSION", "false"
        }
        paid {
            applicationId "com.example.paid"
            resValue "string", "app_name", "Paid App"
            versionName "1.0-paid"
            buildConfigField "boolean", "PAID_VERSION", "true"
        }
    }
    

    Then after a build you can use:

    if (BuildConfig.PAID_VERSION) {
        // do paid version only stuff
    }
    

    You may have to do a sync/build on gradle after you add the attribute before you can compile and import the BuildConfig class that Gradle generates on your behalf.

    0 讨论(0)
提交回复
热议问题