繁体   English   中英

在build.gradle中有条件地定义resValue

[英]Defining resValue conditionally in build.gradle

我在build.gradle中定义resValue,如下所示

defaultConfig {
    ................................
    ................................ 
    resValue "string", "google_api_web_client_id", google_api_web_client_id

}

该值位于gradle.properties文件中。

我想要的是为调试版本设置一个单独的值,但变量名称应与google_api_web_client_id相同。

在我的gradle.properties文件中,我将以下内容

geo_api_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
geo_api_key_debug=xxxxxxxxxxxxxxxxxxyyyyyyyyyyyyy

我想要的是,当构建类型为debug时,它将自动获取调试值,如果为release,则它将获取release值。 我可以通过定义常量来做到这一点,但在那种情况下,我必须将这些值放在build.gradle中。 我不想的。

我怎样才能做到这一点?

你可以这样说

buildTypes {
    debug {
        resValue 'string', 'google_api_web_client_id', 'debug_key'
    }
    release {
        resValue 'string', 'google_api_web_client_id', 'release_key'
    }
}

您可以按照以下步骤进行操作,

buildTypes {
    release {
        buildConfigField "String", "google_api_web_client_id", "YUOR_CLIEN_ID"
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
    debug {
        buildConfigField "String", "google_api_web_client_id", "YUOR_CLIEN_ID"
    }
}

我认为这可以帮助您和其他有类似问题的人

在您的gradle.properties

MY_GOOGLE_API_KEY = "234235623"

在您的build.gradle (app)中

release {
            if (project.hasProperty('MY_GOOGLE_API_KEY')) {
                resValue 'string', MY_GOOGLE_API_KEY, 'release_key'
            }
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM