问题标签 [build-variant]

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 回答
1405 浏览

android - 在 Android Studio 3.6 上使用动态功能切换构建变体的问题

在我将 Android Studio 升级到最新版本 3.6 后,我在开发应用程序期间在变体之间切换时遇到了问题(具有动态功能)。

所有模块的我的设置flavors(应用程序/库/动态功能):

默认变体(AS3.6 和以前的版本)

在此处输入图像描述

qa当我在 AS 3.5.x 上切换到风味时

在此处输入图像描述

当我在 AS 3.6 上这样做时:

在此处输入图像描述

然后 AS 显示消息:

Module 'xxx' has variant 'qaDebug' selected, but the module 'dynamic-feature' depends on variant 'devDebug'

我在模块dynamic-feature中的配置取决于构建变体。现在,它总是回退到dev.

有没有办法解决这个问题?

任何建议表示赞赏,谢谢。

更新 这个问题也发生在 AS4.0

0 投票
2 回答
620 浏览

android - Android Studio 3.6 总是选择第一个构建变体

我刚刚更新到 Android Studio 3.6 稳定版。之后,每次我打开我的项目。Android Studio 将我选择的构建变体更改为变体列表中的第一项。然后我必须更改选定的变体并再次同步 gradle。:(

有人对此有解决方案吗?

0 投票
1 回答
838 浏览

android - 如何在 Flutter Android 中创建构建变体,以便每个构建变体具有不同的 app id?

我需要有 3 个不同的 APK(dev、UAT、prod),每个都针对不同的 Firebase 数据库。但是在每个 Firebase 项目上,我都需要提供一个永久的应用程序 ID。这意味着我需要有 3 个构建变体,每个变体都部署具有不同应用程序 ID 的 APK。但是在 Android Studio 上,我似乎找不到为此目的为 Flutter 构建变体的方法(构建变体部分为空)。

我正在寻找的不仅仅是不同的入口点和不同的常量,而是完全不同的应用程序 ID。据我所知,在 Flutter 中更改应用程序名称和应用程序 ID 需要 6 个这样的步骤。我不认为每次我想更改构建范围时都执行这 6 个步骤是处理此问题的有效且正确的方法。

0 投票
1 回答
34 浏览

android-studio - 如何在应用程序之间同步构建变体

我正在开发一个包含多个应用程序的项目。其中一些含有相同的口味。准确地说,风味维度上的相同值。

如果可能的话,我希望它们的值自动同步。否则,我希望它表明存在冲突。

总结一下这种情况,我希望构建变体选择窗格对同一项目的不相关应用程序的行为与对作为应用程序依赖项的模块的行为相同。

我怎样才能实现它?

0 投票
1 回答
53 浏览

android - Android 构建变体多个应用程序

我有一个 Android 项目包含 2 个模块:

  • app - 这是一个标准的 Android 应用程序。
  • 核心 - 这是 Java 库模块。

我这样做是因为我需要在非Android环境中使用核心功能,作为一个独立的jar。

现在,我需要创建另一个应用程序,该应用程序需要使用 app 模块内的核心功能 + Java 包(我无法将它们从那里取出)。

所以我认为使用构建变体可以帮助我。我创建了 2 个构建变体,一个用于旧应用程序,另一个用于新应用程序。

一切正常,但我可以看到我在主目录中的所有资源都被打包到新应用程序的 apk 中,即使第二个应用程序需要少量资源。

我已经搜索过如何像这样排除未使用的资源,但就我而言,我只需要删除未使用的资源,而不是整个文件夹。

0 投票
1 回答
31 浏览

android - 在 Android Studio 中使用具有不同 applicationId 的不同构建变体时,自定义视图会产生膨胀错误

我的代码中几乎没有自定义视图,我在布局文件中使用它们。对于 AppBArLayout 中的 ex- ExpandableAppBarBehavior

到目前为止它工作正常,但是当我使用新的 applicationId com.example.flavor1 创建一个新风格时,它开始在运行时出错。

要包含我放的默认包中的资源

在 build.gradle

但在运行时它给出一个错误:

你能告诉我我在这里做错了什么吗?

0 投票
2 回答
2777 浏览

android - 无法更改构建变体

当我在 2019 年使用 android studio 3.5 更改项目中的变体时,我无法从 Active Build Variants 更改。我通过删除项目的 .idea 和 Build 文件夹并以新的方式从 Active Build Variants 更改 Varieties 解决了这个问题。

**2019 年:

项目构建 Gradle:3.5.3

安卓工作室:3.5**

通过保持相同的 Build Gradle 和相同的产品 Flavors 配置,我无法在项目中以任何方式更改 Active Build Variants 的 Variants。这是以前的配置和当前配置的唯一区别

**2020 年:

项目构建 Gradle:3.5.3

安卓工作室:4.0.1**

有没有人使用最近的构建变体?此类问题的大致原因可能是什么?

构建变体

产品风味

0 投票
0 回答
226 浏览

flutter - Flutter:使用不同的包名称(applicationId)构建变体(风味)

我问了这个问题,根据评论我必须使用多个配置文件,这就像 android 的多种口味。我看过其他问题和答案,但这不是重复的,因为它们都不需要更改 applicationId。但在我的情况下,我需要更改 applicationId,例如包名称:

第一次构建:com.client1.AppName1

第二次构建:com.client2.AppName2

第三个版本:com.client3.AppName3

而且我还需要为每个构建指定不同的 google-services.json,因为 applicationId 正在更改(因为当我尝试手动重命名时,我总是遇到 services.json 由于包名称而引发错误的问题) . 这可以配置吗?还是我需要为每种口味创建一个不同的文件夹?

PS:代码库是一样的,只是颜色,应用程序名称,启动图标,最重要的是applicationId和google-services json,会改变。

0 投票
1 回答
66 浏览

android - 如何将 2 个类似的项目与 Android 构建变体结合起来?

我们确实有 2 个类似的应用程序项目。第一个是针对我国的,第二个是针对欧盟的。它们是 %90 相同的可能更多。我们确实希望将这两个项目合并为一个,并使用构建变体在它们之间切换。那可能吗?如果是,我该怎么做?

主要项目

欧盟项目

例如,某些可绘制对象在 EU Project 上是不同的

- 或者 -

主要项目

欧盟项目

在此示例中,我们确实添加了不同的行,其他一切都相似。

这种差异有近千个,完全相同的类有近五百个,新的类有两百个。

总之,如何在一个项目中使用构建变体来管理这两个项目?

编辑 2:我已经尝试了这些步骤。

  1. 实施维度
  2. 实施风味
  3. 为 eu 项目创建 res、asset、java 文件
  4. 在 gradle 中为 eu 项目创建了 sourceSet

现在构建变体看起来像这个 mainDevDebug,EuDevDebug,......等等 main...... 工作正常,但我有一个错误 Eu..... 那些

重建或运行应用程序时出现错误消息:

0 投票
1 回答
31 浏览

android - 对嵌套的 Flavors 使用不同的 manifestPlaceholder

我确实有如下结构。我想像这样使用不同的 manifestPlaceHolder,projectXTest、projectXDev、projectXProd 都使用不同的 manifestPlaceHolder,而 projectYTest、Prod、Dev 使用相同的 manifestPlaceHolder。除了将这些值放入 string.xml 以适应所有不同的风格之外,我还能做什么