【问题标题】:How to build two build android variant for fetching two Different URL using Retrofit?如何构建两个构建 android 变体以使用 Retrofit 获取两个不同的 URL?
【发布时间】:2019-10-22 13:25:29
【问题描述】:

我正在开发一个 android 应用程序,用于为共享相同数据源的两个不同 Build Variant 获取两个不同的 Rest API。我正在将产品风味用于构建变体。但我不知道如何配置 Retrofit 部分,以便为不同的构建变体选择不同的 API。

提前致谢

【问题讨论】:

标签: java android retrofit retrofit2 build-variant


【解决方案1】:

您可以创建一个BuildConfig Field 以根据您的产品风格向您的 API 客户端提供不同的REST API URL

打开您的 build.gradle (应用级别) 文件并将以下行添加到您的 android 块

    android {
        ....
        applicationVariants.all { variant ->
            def variantName = variant.flavorName
            // replace your specific flavor here instead of 'flavor1' & 'flavor2'
            if (variantName.contains("flavor1")) { 
                variant.buildConfigField 'String', "SERVER_URL", '"your_flavor_specific_url_here"'
            } else if (name.contains("flavor2")) {
                variant.buildConfigField 'String', "SERVER_URL", '"your_flavor_specific_url_here"'
            }
        }
        ....
    }

现在重建您的项目,然后您可以在您的项目中访问 BuidConfig.SERVER_URL,这将根据您选择的产品风格而有所不同。

【讨论】:

    【解决方案2】:

    对于调试版本,您可以使用

            // setting up retrofit
            .baseUrl(if (BuildConfig.DEBUG) {
                "https://debug.server"
            } else {
                "https://release.server"
    
            })
    

    口味,你可以试试

            // setting up retrofit
            .baseUrl(if (BuildConfig.FLAVOR == "test") {
                "https://debug.server"
            } else if(BuildConfig.FLAVOR == "staging"){
                "https://staging.server"
            } else {
                "https://release.server"
            })
    

    This question describes how to define flavors

    【讨论】:

      猜你喜欢
      • 2023-02-16
      • 2021-04-01
      • 1970-01-01
      • 2020-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-24
      • 1970-01-01
      相关资源
      最近更新 更多