There is a workaround with reflection in order to get the project's(not library's) BuildConfig value like this:
/**
* Gets a field from the project's BuildConfig. This is useful when, for example, flavors
* are used at the project level to set custom fields.
* @param context Used to find the correct file
* @param fieldName The name of the field-to-access
* @return The value of the field, or {@code null} if the field is not found.
*/
public static Object getBuildConfigValue(Context context, String fieldName) {
try {
Class<?> clazz = Class.forName(context.getPackageName() + ".BuildConfig");
Field field = clazz.getField(fieldName);
return field.get(null);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return null;
}
To get the DEBUG
field, for example, just call this from library Activity
:
boolean debug = (Boolean) getBuildConfigValue(this, "DEBUG");
I have not tried this yet and cannot guarantee it will work all the time but you can go ahead!!!
build.gradle
to detect if its debug or not but how are you going to check the consumer'sbuild.gradle
? – PlatinumblondgetApplicationContext().getResources().getString("BuildConfig Res Value")
– Kandrakandy