在我的 build.gradle 中(模块:app ),我指定了一个buildConfigField
和一个resValue
变量。
buildTypes {
release {
debuggable false
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
buildConfigField "String", "APP_EXP_DATE", "\"DEC 31 23:59:59 EDT 2018\""
resValue "String", "app_exp_date", "\"DEC 31 23:59:59 EDT 2018\""
}
}
然后,我希望它们像下面这样在我的Java代码中使用:
BuildConfig.APP_EXP_DATE
R.string.app_exp_date
但不幸的是,我遇到以下错误:
错误:找不到符号变量APP_EXP_DATE
错误:类型非法启动
如何使其能够在我的Java代码中从gradle中访问变量?
答案 0 :(得分:1)
如何使它能够从gradle中访问变量 我的Java代码?
您的代码中的问题似乎正在release
buildType中使用,这可能会导致问题(无法解决。)
但是,这应该是这样的:
在gradle.properties
中:
ExpDate="DEC 31 23:59:59 EDT 2018"
在app/Build.gradle
中(请注意,它应该在android块代码中):
def APP_EXP_DATE = '"' + ExpDate + '"' ?: '"Define Expire Date"'
android.buildTypes.each { type ->
type.buildConfigField 'String', 'APP_EXP_DATE', ExpDate
}
用法:
BuildConfig.APP_EXP_DATE
作为Toast
:
Toast.makeText(activity, BuildConfig.APP_EXP_DATE, Toast.LENGTH_LONG).show()
答案 1 :(得分:1)
好吧,您有一些选择:
在defaultConfig下定义您的字符串和值,如下所示:
android {
// your code
defaultConfig {
// your code
resValue "string", "<key>", "<value>"
buildConfigField "string", "<key>", "<value>"
// ...
}
// your code
}
您可以将字符串设置为Release和Debug类型
buildTypes {
release {
// your code
resValue "string", "<key>", "<value>"
buildConfigField "string", "<key>", "<value>"
// ...
}
debug {
// your code
resValue "string", "<key>", "<value>"
buildConfigField "string", "<key>", "<value>"
// ...
}
}
希望获得帮助!