我的项目根目录中有 local.properties 文件。
sdk.dir=C\:\\Users\\vucet\\AppData\\Local\\Android\\Sdk
versionName='7.0'
在应用程序模块中构建 gradle 时,我试图通过这种方式获取 versionName
Properties properties = new Properties()
if (project.rootProject.file('local.properties').exists()) {
properties.load(project.rootProject.file('local.properties').newDataInputStream())
}
def getVerCode = { ->
def code = project.hasProperty("versionCode") ? project.versionCode.toInteger() : 1000
return code
}
def getVerName = { ->
def name = project.hasProperty("versionName") ? project.versionName.toString() : "5.0"
return name
}
但是每次我得到5.0的值。请问有人能帮我吗?
最佳答案
使用 gradle 读取 local.properties 并在您的 Android 应用 java 代码中使用它们。
本地.properties:
token ="yyyyy"
SERVER_URL="https://foo.com"
build.gradle:
Properties properties = new Properties()
if (project.rootProject.file('local.properties').canRead()) {
properties.load(project.rootProject.file("local.properties").newDataInputStream())
}
buildConfigField 'String', 'TOKEN', properties.getProperty('TOKEN', '"xxx"')
buildConfigField 'String', 'SERVER_URL', properties.getProperty('SERVER_URL', '"https://example.com/"')
安卓java代码
@Override
public void onCreate(Bundle savedInstanceState) {
...
Log.d("TAG", "My 'token' is: " + BuildConfig.TOKEN);
Log.d("TAG", "My 'server url' is: " + BuildConfig.SERVER_URL);
}
关于Android 从 local.properties 读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43921078/