使用Gradle的开发和生产环境的不同参数

时间:2014-10-21 17:11:22

标签: java android gradle android-studio android-gradle

在使用Android Studio IDE配置Gradle构建的Android java项目中,我希望根据构建环境更改变量。

例如,如果Utils.java中有public static final boolean USE_LOCAL_BACKEND = false;,则生产应始终具有false值,并且开发可能希望true使用本地服务器进行调试

我不是Gradle的专家,我非常感谢有关如何配置我的项目以获得每个环境的两个不同properties文件的详细指南,每个文件都有相同的密钥,但是不同的价值观。

1 个答案:

答案 0 :(得分:2)

到目前为止,最简单的解决方案是将USE_LOCAL_BACKEND移至BuildConfig

android {
    // other stuff here

    buildTypes {
        debug {
          buildConfigField "String", "SERVER_URL", '"http://test.this-is-so-fake.com"'
        }

        release {
          buildConfigField "String", "SERVER_URL", '"http://prod.this-is-so-fake.com"'
        }

        mezzanine.initWith(buildTypes.release)

        mezzanine {
            buildConfigField "String", "SERVER_URL", '"http://stage.this-is-so-fake.com"'
        }
    }
}

在此,我在SERVER_URL上为三种构建类型(StringBuildConfig和自定义{{1}定义debug release字段一个)。你可以对mezzanine boolean做同样的事情。然后,您可以在Java代码中将其称为USE_LOCAL_BACKEND