Android 从 local.properties 读取

标签 android gradle android-gradle-plugin build.gradle

我的项目根目录中有 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/

相关文章:

android - openCV Android 相机方向

android - 在启动时调用 ActionBar 中的 onNavigationItemSelected 如何避免它?

gradle - variantOutput.getPackageApplication()已过时

android - 如何在 Android Studio Bumblebee 中添加项目级依赖类路径

android - 安装 apk 时出错 - 解析包

android - 既然 TYPE_KEYGUARD 已被删除,那么它的解决方法是什么?

java - 附加变量进行 HTTP 调用时失败

android - 如何在 Android Studio 运行时获取构建变体?

gradle - 使用grunt和gradle配置jshint

android - AAPT2 编译失败 : invalid dimen on Android 3. 0 Canary 1