问题标签 [android-flavors]

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 投票
2 回答
767 浏览

android - Android 如何为不同的客户端管理项目名称和徽标和应用程序图标

根据需要,我需要为不同的客户管理一个项目,其中我通常需要更改应用程序图标、应用程序名称和客户端徽标。处理这个问题的有效方法是什么?

我已经阅读了有关 Android 中的属性文件的信息,但它确实提供了更改应用程序图标和名称的选项。它有任何处理此问题的原因。

0 投票
2 回答
1309 浏览

android - 将风味配置保存在单独的 .gradle 文件中

简短 - 有没有办法将风味配置保存在单独的 .gradle 文件中?

有关更多详细信息 - 我希望每个风味的 .gradle 文件(如 flavorGermany.gradle、flavorUkraine.gradle、flavorItaly.gradle 等)将包含在“apply from:”指令中到主 gradle 中。每个风味 .gradle 都将包含签名和构建配置。

0 投票
3 回答
15352 浏览

android - 如何在口味之间使用不同的包名?

我正在尝试创建一个具有 2 种风格的项目:免费和专业版(版本)。

我的应用程序已经在 PlayStore 中使用不同的包(例如:com.example.appfree 和 com.example.app)

这是我的 build.gradle:

这是我的清单文件:

我尝试上传免费和专业版的构建 apk。专业版还可以,但免费版不被谷歌接受,因为包装不正确。我该如何解决这个问题?

====== 已解决:====== applicationIdSuffix 仅适用于 buildTypes。

0 投票
1 回答
181 浏览

android - Assemble gradle flavor 编译来自其他风味的依赖项

我们正在尝试开发 2 种 gradle 口味以加快我们的开发过程:

  • 将我们的库编译为模块的本地风格
  • 使用我们图书馆最新快照的远程风格

我在 gradle 中声明了两种口味:

现在,让我们假设我们的本地和远程库都可以作为本地模块使用(用于调试目的)。我在这里创建了一个示例项目。由于每个库都有也应该是本地或远程的子库,我添加了:

现在变得棘手了。如果我打电话gradle assembleLocalDebug,我会得到这条线:

对于示例应用程序,它会编译。但在我们的例子中,我们有一个项目,在 SNAPSHOTS 中找不到最新功能(因为它们尚未发布)。这不应该发生,因为我们是在本地构建的。有什么办法可以防止 gradle 编译远程风味?

0 投票
0 回答
57 浏览

android - 如何将单个应用程序变成两种不同的风格?

我有一个应用程序,我需要分成两种风格。该应用程序的功能很像 Uber(尽管不是用于驾驶),其中将有一个客户端应用程序处理所有的乘车请求,以及一个“司机”应用程序向他们发出客户端请求的警报(继续 Uber 示例)。到目前为止,我已经完成了客​​户端应用程序,我希望重用代码来创建“驱动程序”应用程序。

我的问题是,当涉及到包和诸如此类的东西时,我真的不知道应该如何处理这项任务。我已经设置了风味根文件夹,但我应该简单地复制和粘贴吗?有没有更好的办法?

我一直在争论只是创建一个全新的应用程序,但最好保留相同的身份验证代码和 sha 用于 Google 登录目的。

0 投票
1 回答
428 浏览

android - 具有不同 applicationId 的 Android 风格破坏了应用程序的行为和外观

我正在使用以下build.gradle

我没有从源集和源集复制代码main,我只是为每种风格创建了单独的文件:res/values/strings.xml、res/values/colors.xml、google-service.json。reldev

该应用程序构建良好,具有不同的applicationId功能,并且可以单独安装在同一设备上。

对于rel风味,一切正常,它applicationId = 'com.example.app'与原始包名称和实际源包名称相同。

但是我获得了非常奇怪的行为并寻找dev味道,它变成了applicationId = 'com.example.app.dev'

首先,我看到动画无法正常工作,因为它们似乎变成了错误的坐标。

其次,我有许多带有动态膨胀视图的片段,它们部分显示或根本不显示 - 在不同的运行中有所不同。

我建议问题是我的类具有相同的包名称,并且可能出现了如此模棱两可的类标识。

我看到 getContext() 为两种风格返回相同的类“com.example.app.MainActivity”,我认为这很重要。

我不想复制每个源集下的所有源,因为我不需要在那里进行更改 - 代码仍然相同。

什么是解决方案?

0 投票
1 回答
775 浏览

android - 如何在chenge构建变体时更改自动settings.gradle

我有 cms-app 。这个应用程序有大约 200 个模块。如果加载所有模块,cpu 100%。而且电脑很慢。我更改 settings.gradle 并加载所需的模块。

我想更改 settings.gradle 每个构建变体。

样品梯度。

我添加了这个任务,当更改构建变体时,将 settings.gradle 应用程序更改为主 settings.gradle 。

这个解决方案不好。我必须取消注释和注释依赖项。当我更改构建变体时。并且有时不工作。

0 投票
1 回答
66 浏览

android - Android - 风味版本命名

我正在开发一个白标应用程序。该应用程序有多种口味,每种口味都适用于不同的客户。所有口味都在剪切核心逻辑,它们之间的区别主要在于设计。问题是命名版本和跟踪功能更新的最佳实践是什么?

例如,假设我为两个客户端发布了 1.0.0 版本。发布后,第一个客户端请求大量更新,我们与他一起获得了 1.2.6 版本(假设大部分更新都在核心逻辑中)。之后,第二个客户端请求进行一些小的更新,例如移动徽标之类的。那么我应该将他的版本增加到 1.0.1,还是使其与第一个客户端版本相同?因为在他的新版本中,他将拥有第一个客户端 1.2.6 版本中的所有新核心功能。

0 投票
1 回答
57 浏览

android - 在单个 android 设备上同时进行 Dev 和 Prod 版本的 beta 测试

我想在同一台 Android 设备上运行 Beta 测试版和 Prod 版。

我找到了使用不同 applicationId 和 Flavors 的解决方案。它完美无缺!

但是,当我通过不同的 applicationId 获得不同的包时:com.example.app.dev& com.example.app- Play Market 不允许上传带有包的文件com.example.app.dev作为带有 prod applicationId 的应用程序的 beta:com.example.app

因此,我为com.example.app.dev. 但这显然是歪门邪道。

有没有更好的方法?

0 投票
1 回答
76 浏览

android - Android Productflavors 购买/下载专业版

我为我的应用程序创建了两种风格。免费版和专业版。专业版可以访问其他功能(活动)。我为每种风味添加了相关的 res 文件夹并更新了我的 gradle:

我在主屏幕上的免费版本中添加了一个按钮,它应该执行以下操作:

  • 打开付款对话框
  • 如果成功......(做事)
  • 启动专业版

在“...”是我的问题: - 当我将额外的专业版活动和相关资源从主资源文件夹移动到专业资源文件夹时,免费版下载是否不包含它们,所以购买时必须下载吗?还是免费版下载包含所有内容?所以我必须禁止从免费版本访问它?因为如果免费版本只包含必要的东西会更好,而当您购买专业版时,额外的内容将额外下载。

  • 如果没有,该怎么做?