0

我正在开发一个具有两种“皮肤”和两种“构建”的 Android 应用程序:

productFlavors {
   Staging {
     dimension "server"
     buildConfigField 'String', 'API', "the staging API URL"
   }

   Production {
     dimension "server"
     buildConfigField 'String', 'API', "the production API URL"
   }

   SkinOne {
     dimension "skin"
     // Use default API URL
   }

   SkinTwo {
     dimension "skin"
     // Set a specific staging/production API URL
     // if buildVariant.contains("Staging") -> set staging URL
     // else if buildVariant.contains("Production") -> set production URL
   }
}

问题是当我使用SkinTwo选择构建变体时,我想更改te API 字符串。

这在 Gradle 中是否可行,还是我必须在 BuildConfig 类中解决这个问题?

我已经尝试过了,但这 variantFilter不起作用。

4

1 回答 1

0

我已经修好了:

productFlavors {
   Staging {
     dimension "server"
   }

   Production {
     dimension "server"
   }

   SkinOne {
     dimension "skin"
   }

   SkinTwo {
     dimension "skin"
   }
}

applicationVariants.all { variant ->
    if (variant.getName().contains("StagingSkinOne")) {
        variant.buildConfigField 'String', 'API', "staging URL"
    } else if (variant.getName().contains("ProductionSkinOne")) {
        variant.buildConfigField "String", "API", "production URL"
    } else if (variant.getName().contains("StagingSkinTwo")) {
        variant.buildConfigField "String", "API", "the specific staging URL"
    } else if (variant.getName().contains("ProductionSkinTwo")) {
        variant.buildConfigField "String", "API", "the specific production URL"
    }
}
于 2018-08-13T12:21:40.387 回答