You can use BuildConfig as Xavier sad. Example:
In product flavors
productFlavors {
develop {
applicationId "com.dexode.cree.develop"
ext.enableCrashlytics = false
buildConfigField "String", "API_URL", "\"https://api.test.dexode.com/2.3\""
}
beta {
applicationId "com.dexode.cree.beta"
ext.enableCrashlytics = true
buildConfigField "String", "API_URL", "\"https://api.dexode.com/2.3\""
}
production {
ext.enableCrashlytics = true
buildConfigField "String", "API_URL", "\"https://api.dexode.com/2.3\""
}
So now your BuildConfig looks like:
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String APPLICATION_ID = "com.dexode.cree.develop.debug";
public static final String BUILD_TYPE = "debug";
public static final String FLAVOR = "develop";
public static final int VERSION_CODE = 1;
public static final String VERSION_NAME = "1.0.0.0_debug";
// Fields from product flavor: develop
public static final String API_URL = "https://api.test.dexode.com/2.3";
}
And usage in code:
RestAdapter.Builder builder = new RestAdapter.Builder().setEndpoint(BuildConfig.API_URL);
Remember to refresh content of file BuildConfig. AndroidStudio like to cache files. You can click File -> Synchronize
Documentation about Flavors
Related question buildConfigField depending on flavor + buildType