问题标签 [android-flavordimension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
736 浏览

android - 具有重复名称但维度不同的 Gradle 风味

是否可以进行以下设置:

flavorOne 存在两次,包含不同的设置,但也有不同的维度。

我需要的是一个带有生产和暂存的风味 flavorOne,以及 flavorOneStaging 和 flavorOneProduction 的 res 文件。如果我这样做,我只会看到flavorOneStagingDebug 和flavorOneStagingRelease(发布和调试是我的buildTypes),但也看不到flavorOneProduction..

我必须为每种组合创造一种风味吗?暂存和生产包含除 res 文件之外永远不会更改的数据,而 flavorOne 只是 N 中的一个。我不想创建 N*2 风味以在生产和暂存中拥有每种风味?有什么解决办法吗?

0 投票
2 回答
3662 浏览

android - 在 Multi Flavor 应用中,如何避免重复资源

如果我有 3 种风味风味 1、风味 2 和风味 3,则每种风味都有 Dev、Pat 和 Prod “子风味”版本,它们的参数不同,但每种主要风味都有不同的资源。

所以我现在有 9 种不同的风格,但只有 3 个不同的资源文件夹)。我希望相同的“子口味”使用相同的资源。

我怎样才能做到这一点?我在有关 flavorDimensions 的文档中看到过,但不确定如何配置资源文件夹。

目前我正在使用类似的东西

0 投票
2 回答
7590 浏览

android - Android Studio:具有两个以上风味维度(风味组)的产品风味组合

我正在使用 Android Studio(v 2.1,gradle plugin v 2.1.0)开发一个 Android 应用程序。我的应用程序有各种版本,它们共享许多通用代码,因此我决定使用风味维度和产品风味来定制代码和资源,无论何时何地都需要。只要我只有两个风味维度,这就行了。例如,我app.gradle

我的src文件夹是

每个都有我的代码的自定义版本。再次,作为一个例子

当然,没有ExampleFragmentin 的实例src/main

在开发过程中的某个时候,我必须包含应用程序的免费付费版本。我认为可以通过添加一个名为的新风味维度和两个名为and的version产品风味轻松实现:freepaid

但是突然之间,由 和 组合生成的自定义代码fruit不再color被Android Studio检测到。所以 no appleRed, appleYellow, pearRednorpearYellow不能用于自定义代码,我能够重新获得配置的唯一方法是使用所有三个风味维度的所有组合:

这不好,因为ExampleFragment在相同的fruitColor*组合中重复 ( appleRedFree,appleRedPaid具有相同的ExampleFragment)。res资源(文件夹中的资源)也会出现同样的问题。

我的问题是:

1)这是Android Studio中gradle的预期行为吗(,当具有两个以上的风味维度时,无法组合产品风味的子集,根据它们的维度遵循它们的优先级)?

2)鉴于这是预期的行为,是否有另一种方法可以实现我的自定义,而无需重复代码或没有内部带有if 语句的单个文件(例如if (BuildConfig.FLAVOR_version == "free") ...)的情况下实现我的自定义?

请注意,我说的是拥有可能很复杂的自定义代码,所以我不是要求基本的自定义,如构建配置变量、变体过滤或类似的东西。

0 投票
3 回答
4325 浏览

android - gradle:仅针对特定风味应用插件

我的 Android gradle 目前为使用不同的推送服务设置了风味维度。(一个用于 baidu 推送,一个用于 GCM)我希望我的 Android 应用程序仅用于导入google-servicesGCM 推送构建风格。有可能做到吗?

PS因为为了在 Android 中使用 GCM,我必须apply plugin: 'com.google.gms.google-services'在我的 app/build.gradle 文件的底部添加这一行,详见此处

作为一种解决方法,为了让 baidu 风味能够成功构建,我可能需要google-services.json为 baidu 放置一个 dummy。

更新: 我似乎在这个长长的 github 问题线程中找到了答案。

0 投票
1 回答
1189 浏览

gradle - gradle 风格维度中的组合 BuildConfig 变量

在我的 Android 应用程序中,我有两个风味维度:“品牌”(brand1,brand2)和“环境”(staging,production)。一段时间后,我添加了“环境”维度,并且我之前已经BuildConfig为不同的品牌定义了一些变量。更具体地说,我这样定义BASE_URL

现在,我添加了“环境”维度,我想设置四个不同的端点:

  1. Brand1-staging:“ http://brand.one.staging.api/
  2. Brand1-生产:“ http://brand.one.production.api/
  3. Brand2-staging:“ http://brand.two.staging.api/
  4. Brand2-生产:“ http://brand.two.production.api/

但我不知道如何为BuildConfig风味维度的特定组合创建变量。这甚至可以用裸 gradle 实现吗?

谢谢

0 投票
1 回答
773 浏览

android-studio - Gradle:如何在 buildTypes 中为多维风格设置signingConfig

在 Android Studio (v2.2) 中同步成绩文件时出现以下错误日志:


背景:

我有一个适用于 3 个开发环境(例如 dev、uat 和 production)的 2 个版本的应用程序(例如 freeApp 和paidApp)。我这样设置我的 app.gradle 文件:

对于 buildTypes,我创建了一个自定义的调试类型“alpha”,这样我就可以为自己的目的设置signingConfig:

custom1DebugKey、custom2DebugKey、customReleaseKey 是正在签名的配置,这不是重点,所以我只是跳过粘贴代码。

我想问一下当productFlavors中有多个维度时,如何在“productFlavors.XXX.signingConfig”中获得正确的XXX名称。谢谢。


PS有关更多信息,它可以通过像这样修改gradle文件来完美地为我工作:

0 投票
1 回答
811 浏览

android - 如何为具有风味维度的不同产品变体指定signingConfigs?

以前有人问过这个问题(例如Gradle 签名与风味和维度),但答案似乎不适用于 Gradle 3.5。

使用 2 个风味维度,我为每个版本变体指定了以下签名配置:

这足以gradle signingReport报告正确的设置,但gradle assemblePyramidGoogleRelease(例如)将构建一个未签名的 apk。

它正在跳过validateSigningPyramidGoogleRelease任务,这反映在gradle tasks --all输出结果中,它没有列出validateSigning*任何*Release变体。

0 投票
0 回答
47 浏览

android - build.gradle (AndroidStudio) 中的 flavorDimensions 有什么用?

我在其中打开了一个项目build.gradle对我来说也是不熟悉的:

这个有什么用?

0 投票
1 回答
321 浏览

android - 2维以上的产品风味

今年早些时候,我为我们使用风味维度的客户发布了一个应用程序。我们有

这非常有效。但现在我需要Banana作为另一个应用程序添加到项目中,事情变得一团糟。

在完整版本中,我有一些现有版本共享的功能,我希望完全从新应用程序中排除。有些资源也可以很好地删除,但由于这些是小文件,我并不关心它。我也希望避免Full和的Preview版本Banana,但如果我不能这样做,那也没关系。我真正需要做的是将一些文件分组到Appleand中Orange,而其他文件则为所有 3。有点像制作第三维。有什么建议吗?

0 投票
1 回答
837 浏览

android - 如何在 build.gradle 中获取风味维度列表?

在我的build.gradle,我有

如何flavorDimensions以 gradle 在创建风味组合时使用的相同顺序获取列表?