Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Gradle的开发和生产环境的不同参数_Java_Android_Gradle_Android Studio_Android Gradle Plugin - Fatal编程技术网

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

Java 使用Gradle的开发和生产环境的不同参数,java,android,gradle,android-studio,android-gradle-plugin,Java,Android,Gradle,Android Studio,Android Gradle Plugin,在使用androidstudioide配置gradlebuild的androidjava项目中,我想让变量根据构建环境而变化 例如,如果有一个公共静态final boolean USE\u LOCAL\u BACKEND=false在Utils.java中,生产应该始终具有false值,开发可能希望具有true以使用本地服务器进行调试 我不是Gradle的专家,我希望您能提供一份详细的指南,告诉我如何配置我的项目,使其在每个环境中都有两个不同的属性文件,每个文件都有相同的键,但值不同。到目前为止

在使用androidstudioide配置gradlebuild的androidjava项目中,我想让变量根据构建环境而变化

例如,如果有一个
公共静态final boolean USE\u LOCAL\u BACKEND=false
在Utils.java中,生产应该始终具有
false
值,开发可能希望具有
true
以使用本地服务器进行调试


我不是Gradle的专家,我希望您能提供一份详细的指南,告诉我如何配置我的项目,使其在每个环境中都有两个不同的
属性
文件,每个文件都有相同的键,但值不同。

到目前为止,最简单的解决方案是将
使用本地后端
移动到
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"'
        }
    }
}

这里,我在
BuildConfig
上为三种构建类型(
debug
release
,以及一种自定义的
mezzanine
类型)定义一个
SERVER\u URL
String
字段。您可以对
布尔值
使用本地后端
执行相同的操作。然后,您可以在Java代码中将其称为
BuildConfig。使用\u LOCAL\u BACKEND

应该会对您有所帮助。很酷,只是为了澄清一下,此代码位于build.gradle中,并自动生成到BuildConfig.Java类中。谢谢@科夫:是的,很抱歉我的回答太仓促了。