当前位置: 首页 > 知识库问答 >
问题:

使用Flavors构建不同的应用程序-不同的代码。

胡俊美
2023-03-14

我正在构建一个具有多种不同风格的应用程序。我的问题是,如果我为基于flavor的活动使用不同的代码,我是否需要在所有flavor directores中包含该代码的副本,或者如果我只将代码副本保留在app/src/main/java目录中,如果我不将其包含在flavor目录中,其他所有flavor是否会使用main/java中的文件。

我有

app/src/main/java/com/mycompany/CodeA。Java语言

app/src/flavor1/java/com/mycompany/CodeA。Java语言

而且没有针对flavor2的特殊源代码集文件夹,flavor2将使用app/src/main/java/com/mycompany/CodeA中的代码文件。Java语言或者我是否需要创建一个源代码集文件夹,其中包含每种风格的代码副本?我对几种风格使用不同的资源文件夹,但对于所有其他风格,资源文件夹默认为app/src/main目录中的文件。

共有1个答案

梁明辉
2023-03-14

注意:对于给定的构建变量,如果Gradle遇到两个或多个定义了相同Java类的源集目录,则会引发构建错误。例如,在构建调试APK时,不能同时定义src/debug/Utility。java和src/main/Utility。Java语言这是因为Gradle在构建过程中查看了这两个目录,并抛出了一个“复制类”错误。如果您想要不同版本的实用程序。java对于不同的构建类型,您可以让每个构建类型定义自己的文件版本,而不将其包含在主/源集中引用自https://developer.android.com/studio/build/build-variants.这正是你要问的。所以答案是,它不会编译,您必须以两种风格定义代码文件,而不是以main定义。

 类似资料:
  • 我使用了一个用于prod的构建方案和一个用于staging的构建方案(有两个不同的包标识符),并且我试图为每个方案使用单独的GoogleService-info.plist。在初始化GCM(和goole登录)时,有没有方法手动选择plist文件?还是可以避免使用plist而手动进行设置? 谢谢!

  • 我在gradle文件中设置了两种构建类型:和。我希望能够为构建类型设置不同的应用程序图标。有没有办法只通过构建类型实现这一点,而不涉及产品风格?建筑gradle文件如下。

  • 一个product flavor定义了从项目中构建了一个应用的自定义版本。一个单一的项目可以同时定义多个不同的flavor来改变应用的输出。 这个新的设计概念是为了解决不同的版本之间的差异非常小的情况。虽然最项目终生成了多个定制的版本,但是它们本质上都是同一个应用,那么这种做法可能是比使用库项目更好的实现方式。 Product flavor需要在productFlavors这个DSL容器中声明:

  • 我正在尝试用不同的配置文件在SBT本机打包器的帮助下创建构建。我有一个Scala项目的标准项目布局: 所以我将sbt-native-packager插件添加到我的项目中,并决定重复SBT子模块方法。 那么如何修复这个呢?

  • 问题内容: 当与MySQL数据库连接时,我有几种方法可以做同样的事情,保存或加载不同类型的参数。目前,我对每种类型都有不同的方法。如何合并这些方法,以便它们支持不同的类型? 下面是两个非常相似但使用不同类型的方法的示例: 请注意,在该示例中,类型均为数字。在类型完全不同的情况下(例如int和String),如何避免使用近乎重复的方法? 问题答案: 您可以在此处应用 策略 模式。 …

  • 编辑:在阅读文档之后,getInstallerPackageName()给出安装程序的包名。 因此,在传递时,上面的代码将用户带到GooglePlaystore中我的应用程序的屏幕。所以,即使知道安装程序的包名也没有帮助,因为我不能将用户发送到同一屏幕。