问题标签 [android-productflavors]

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 投票
1 回答
438 浏览

android - 如何打造风味?

我有一个 gradle.build 可以很好地实现主要目标。我想为蒙皮版本添加风味。我已将它们添加到 gradle build 但我不明白我应该将另一个版本的文件放在哪里,在哪个文件夹中以及它应该是什么名称?让我们考虑一个例子:主包是 com.example.app,项目结构对 android app 来说是通用的(我在 sourceSets 中做)。据我了解,我应该创建文件夹(不是一组子文件夹) com.example.app.flavor 并放入已经包含主项目文件的 \res 但它不起作用;当我构建 assembleFlavorDebug 时不起作用 - 构建了 apk 但它包含主应用程序,但风味没有变化

0 投票
3 回答
6003 浏览

android - gradle 中的多风格编译依赖项

有没有办法在 Android Studio (build.gradle) 中通过多种方式编译依赖项?

我有 2 个风味组,每个有 2 个变体。在 4 种可能的组合中,我希望只有在我既是最新版又是免费版的情况下才能依赖一个库。latestCompile 或 freeCompile 有效,但 latestFreeCompile 无效。这是我的 build.gradle 的相关部分:

如果我会使用:

那么它也将包含在 latestPro 中(不需要),如果我使用:

那么它也将包含在 sdk7Free 中(尽管它需要 SDK 8)

0 投票
0 回答
385 浏览

android - Gradle 预处理资产

我想在构建阶段对资产做一些事情。这是我的 gradle 脚本。

我的问题是,如何灵活地检索资产文件夹的名称(路径)以防万一。另外我如何只能更改构建版本?

0 投票
2 回答
1479 浏览

java - 如何在产品风格之间修改代码

我正在使用免费和付费版本创建一个非常简单的应用程序,为此我使用了 Android Gradle 插件中出色的 productFlavors 功能。我了解应该如何配置 build.gradle 文件并编写了它,所以我的构建选项是;

  • 免费发布
  • 免费调试
  • 付费发布
  • 付费调试

看起来如下

基本上,我要做的只是限制一些功能并将 AdMod 添加到免费版本中,我该怎么做?我是否在我的主要 java 类中添加 if-else 语句来检查它是免费的还是付费的?或者我可以覆盖免费目录中的java类吗?我该怎么做呢?

0 投票
2 回答
16024 浏览

android - Android Studio 中不同风格的测试包

我正在 androidstudio 中的应用程序上试验风味。我必须为风味编写不同的测试类,因为我有不同的风味类文件。但我想知道是否有任何选项可以为 build.gradle 中的每种风味指定测试包。这是我的 build.gradle 供参考。我使用的是 0.4.6 版本的 AndroidStudio。

0 投票
1 回答
324 浏览

android - 编写 gradle 任务以添加新的 Android 产品风格的规范方法

我想使用自定义 Gradle 任务在 Android 项目中自动处理各种风格。
例如,addFlavor使用 2 个参数实现任务:flavorNameflavorLogo。通过执行以下步骤,该任务应该添加新的风味:

  1. 更新文件中的productFlavors部分build.gradle,为其添加新风格:

    /li>
  2. 添加风味文件夹并将flavorLogo .png文件复制到flavorName/res/drawable-xxhdpi/ic_launcher.png

使用自定义 Gradle 任务的正确和规范方法是什么?

0 投票
2 回答
11367 浏览

android - buildConfigField 取决于风味 + buildType

我正在尝试根据flavor + buildType定义一个buildConfigVariable。理想情况下,这就是我想要的

name确实包含“草莓”,但我不知道是否可以访问variantbuildType

放置在Android闭包之外,我确实可以访问BuildTypevariant,但是我无法调用buildConfigField

我可以轻松地创建一个 Java 工厂并API_KEY根据一些BuildConfig常量返回适当的工厂,但我宁愿保持代码配置不可知。

0 投票
1 回答
3819 浏览

android - Android Studio SourceSets错误:相同的文件/文件夹

我在我的项目中构建了 2 种风格,这些风格有一些共同的代码。这曾经很好用,但在最新版本的 android studio 和 gradle 中,我收到了这个错误。

这就是我在 gradle.build 中所拥有的

0 投票
2 回答
2107 浏览

android - Android - 根据风味更改应用版本名称

我想将应用程序更改versionName为 AndroidManifest 文件中为我正在构建的特定风格定义的任何内容。

因此,如果我只构建我拥有的 4 种定义风格中的一种,例如:
gradle assembleFlavor1Debug

我期望Flavor1具有与其特定清单定义的版本名称相同的版本名称(因为清单文件的合并),但这并没有发生。

在构建期间,我如何知道正在构建哪种特定风味?
因为如果我知道正在运行什么风味,我可以从清单
中提取相应的并将其设置为 on , 这解决了我的问题。versionNameandroid.defaultConfig.versionName

0 投票
1 回答
393 浏览

android - 使用 gradle productflavors 进行应用内计费

我最近将我的项目从 Eclipse 导入到 Android Studio,并集成了 Gradle 的 projectFlavors 以支持不同的环境(DEV、QA 和 PROD)。尽管我的应用内计费遇到了问题。似乎使用包名来查询谷歌商店,但根据我的 productFlavors 包名会发生变化。

我的 gradle.build 定义

谢谢你的时间。