是否可以在Java中声明一个可用于Gradle的变量?

问题:

是否可以在Java中声明一个可用于Gradle的变量?
基本上我想在build.gradle中声明一些vars,然后在构建时得到它(显然)。就像C / C ++中的预处理器宏一样…
声明的一个例子就是这样:

android {
    debug {
        A_VAR_RETRIEVABLE_IN_JAVA = 42
    }
    release {
        A_VAR_RETRIEVABLE_IN_JAVA = 42+52
    }
}

有办法做这样的事吗?

回答:

生成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"
        }
    }
}

您可以使用BuildConfig.FOO访问它们

生成Android资源

android {
    buildTypes {
        debug{
            resValue "string", "app_name", "My App Name Debug"
        }
        release {
            resValue "string", "app_name", "My App Name"
        }
    }
}

您可以通常使用@string/app_nameR.string.app_name访问它们

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Is it possible to declare a variable in Gradle usable in Java?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 12 = 17