Android Gradle如何根据当前的buildType设置变量

Mou*_*ssa 1 android gradle

如何根据当前的构建类型设置变量,我已经尝试过

String url = "https://dev.myurl.com"
tasks.whenTaskAdded { task ->
    if (task.name == 'generateReleaseBuildConfig' || task.name == 'generateDebugBuildConfig') {
        if (task.name == 'generateReleaseBuildConfig') {
            url = "https://prod.myurl.com"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但无论当前的 buildType 是 Release 还是 Debug,任务generateReleaseBuildConfiggenerateDebugBuildConfig都会执行,所以我永远不会根据当前的 buildType 获取值。我指定此变量稍后在构建脚本中使用,而不是在 Java 代码中使用。

我尝试过在 SO 中找到的几种解决方案,但没有一个对我有用

Abn*_*cio 5

这个例子来自我自己的应用程序。工作正常

将以下代码放在您的app\build.gradle

buildTypes {
        debug {
            ...
            buildConfigField "String", "SERVER_URL", '"http://..."'
        }
        release {
            ...
            buildConfigField "String", "SERVER_URL", '"http://..."'
        }
}
Run Code Online (Sandbox Code Playgroud)

重要提示:同步您的gradle

然后在你的班级上进行跟随通话

String URL = BuildConfig.SERVER_URL