是否有可能宣布在摇篮一个变量在Java中使用吗? [英] Is it possible to declare a variable in Gradle usable in Java?

查看:137
本文介绍了是否有可能宣布在摇篮一个变量在Java中使用吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有可能宣布在摇篮一个变量在Java中使用吗? 基本上,我想宣布在build.gradle一些增值经销商,然后得到它(显然)在构建时。就像一个在C pre处理器宏/ C ++ ...

声明的一个例子是类似的东西...

 安卓{
    调试{
        A_VAR_RETRIEVABLE_IN_JAVA = 42
    }
    推出 {
        A_VAR_RETRIEVABLE_IN_JAVA = 42 + 52
    }
}
 

有没有办法做这样的事情?

解决方案

生成Java常量

插件版本大于0.7.x

 安卓{
    buildTypes {
        调试{
            buildConfigFieldINT,富,42
            buildConfigField字符串,FOO_STRING,\福\
        }

        推出 {
            buildConfigFieldINT,富,52
            buildConfigField字符串,FOO_STRING,\栏\
        }
    }
}
 

您可以使用 BuildConfig.FOO

访问它们

生成的Andr​​oid资源(因为插件0.8.3)

 安卓{
    buildTypes {
        调试{
            resValue串,APP_NAME,我的应用程序名称调试
        }
        推出 {
            resValue串,APP_NAME,我的应用程序名称
        }
    }
}
 

您可以使用 @字符串/ APP_NAME R.string.app_name

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 ?

解决方案

Generate Java Constants

Plugin version greater than 0.7.x

android {
    buildTypes {
        debug {
            buildConfigField "int", "FOO", "42"
            buildConfigField "String", "FOO_STRING", "\"foo\""
        }

        release {
            buildConfigField "int", "FOO", "52"
            buildConfigField "String", "FOO_STRING", "\"bar\""
        }
    }
}

You can access them with BuildConfig.FOO

Generate Android resources (since plugin 0.8.3)

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

这篇关于是否有可能宣布在摇篮一个变量在Java中使用吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆