Is it possible to declare a variable in Gradle usable in Java ? Basically I would like to declare some vars in the build.gradle and then getting it (obviously) at build time. Just like a pre-processor macros in C/C++...
An example of declaration would be something like that ... :
android {     debug {         A_VAR_RETRIEVABLE_IN_JAVA = 42     }     release {         A_VAR_RETRIEVABLE_IN_JAVA = 42+52     } }   Is there a way to do something like that ?
Here are two ways to pass value from Gradle to use in Java;
android {     buildTypes {         debug {             buildConfigField "int", "FOO", "42"             buildConfigField "String", "FOO_STRING", "\"foo\""             buildConfigField "boolean", "LOG", "true"         }          release {             buildConfigField "int", "FOO", "52"             buildConfigField "String", "FOO_STRING", "\"bar\""             buildConfigField "boolean", "LOG", "false"         }     } }  You can access them with BuildConfig.FOO
android {     buildTypes {         debug{             resValue "string", "app_name", "My App Name Debug"         }         release {             resValue "string", "app_name", "My App Name"         }     } }  You can access them in the usual way with @string/app_name or R.string.app_name
gradle.properties
AppKey="XXXX-XXXX"  build.gradle
buildTypes { //...     buildTypes.each {         it.buildConfigField 'String', 'APP_KEY_1', AppKey         it.resValue 'string', 'APP_KEY_2', AppKey     } }  Usage in java code
Log.d("UserActivity", "onCreate, APP_KEY: " + getString(R.string.APP_KEY_2));  BuildConfig.APP_KEY_1  Usage in xml code
<data android:scheme="@string/APP_KEY_2" />  If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With