【问题标题】:How to use specific fields for specific application builds (debug/release)?如何为特定的应用程序构建(调试/发布)使用特定字段?
【发布时间】:2014-08-15 07:45:11
【问题描述】:

我使用gradle 来构建我的android 项目。当构建类型为Debug时,我想更改java文件Constans.java中的布尔值。

public static final boolean IS_TEST_ENVIRONMENT = false;

我使用这个值来控制我的应用请求不同的服务器。怎么做,我找不到任何信息。

【问题讨论】:

    标签: java android build gradle


    【解决方案1】:

    您可以通过编辑 build.gradle 文件来添加任意数量的字段,如下所示:

    buildTypes {
        debug {
            buildConfigField "boolean","IS_TEST_ENVIRONMENT","true"
            buildConfigField "boolean","SOME_OTHER_FIELD","false"
        }
        release {
            buildConfigField "boolean","IS_TEST_ENVIRONMENT","true"
            buildConfigField "boolean","SOME_OTHER_FIELD","true"
            runProguard true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    
    }
    

    但对我来说,它一开始不会识别该字段

    if (BuildConfig.IS_TEST_ENVIRONMENT) {
        // Do something on Debug build
    }
    if (BuildConfig.SOME_OTHER_FIELD) {
        // Do something else
    }
    

    重建也没有帮助。有帮助的只是重新启动我的 AndroidStudio。

    【讨论】:

    • 我需要在我的项目根目录下创建 BuildConfig.java 文件吗?
    • @user3932202 BuildConfig 由 ADT 创建,因此您不必自己导入/创建它。虽然现在我看了一下,但已经有一个 DEBUG 布尔字段可供您使用。更新了答案。
    • THX。我还有一个问题,我想使用更多的布尔值,所以,我将在 BuildConfig 中添加一个布尔值,但它提示“自动生成的文件。不要修改” .我能做些什么 ?我想要一个布尔值;
    • @user3932202 你可以按照我展示的方式添加多个字段。顺便说一句,使用 BuildConfig.DEBUG 有时会出现错误,因此您可能希望远离它。
    • 您的意思是我可以使用我在 BuildConfig 中添加的其他布尔字段,例如“IS_TEST_ENVIRONMENT”,但不要使用 BuildConfig.DEBUG?
    【解决方案2】:

    您可以创建自己的构建变量:

    buildTypes {
        debug {
    
            buildConfigField "boolean","IS_TEST_ENVIRONMENT","false"
        }
    }
    

    【讨论】:

    • 谢谢!!!但是我的布尔值“IS_TEST_ENVIRONMENT”不在 buildConfig 中。它在 Constans.java 中。我能怎么做?顺便说一句,我想知道在哪里可以找到有关此的文档。你怎么知道解决方案?
    猜你喜欢
    • 2010-11-21
    • 1970-01-01
    • 2020-07-27
    • 2015-12-31
    • 1970-01-01
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    相关资源
    最近更新 更多