gpt4 book ai didi

java - 特定口味的变体如何发挥作用?

转载 作者:行者123 更新时间:2023-12-01 18:01:10 25 4
gpt4 key购买 nike

如果您需要 flavor ,您应该转到build gradle并添加您需要的 flavor

像这样

productFlavors {
mock {
applicationIdSuffix = ".mock"
}
prod {}
}

然后您需要创建相应的目录,如下所示 /src/prod/java/

我认为它应该如何工作,根据选择的构建变体,例如 prodDebug androidStudio 将作为基本主源,并根据选择的构建变体替换目录中的核心相应类。

但后来我发现了这个 fragment ,上面写着

Files in the flavor-specific folders do not replace files in the main source set. Trying to do that will result in a duplicate class exception. This is a common misconception because it's how resources are merged.

最佳答案

好的,通过风格的基本配置,您将拥有两种类型的源集:

  1. 主要源集
  2. 特定风格源集,例如您的mockprod

使用标准buildTypes配置(调试发布),这将为您提供以下构建变体(组合构建类型和产品风格):

  1. 模拟调试
  2. 模拟发布
  3. 产品调试
  4. 产品发布

它们中的每一个都使用与 flavor /类型名称主集相对应的每个源集,因此例如prodRelease将使用以下所有源立即设置:

  1. /src/main
  2. /src/prod
  3. /src/release

实际上,构建系统会将所有这些“合并”到一个源集中,这意味着如果这些集中存在具有相同路径和名称的类,则会发生名称冲突,编译器将失败。

正确使用源集的方法是省略 ma​​in 集中每个集需要不同的类,而是为它提供每个 flavor /每个构建类型的所有集,例如:

  1. main 集具有引用类 B.java 的类 A.java。主集中省略了 B.java。
  2. 不同的B.java文件包含在mockprod集中(当然,不需要不同,但需要提供相同的接口(interface),最好将接口(interface)包含在集中)。
  3. 编译器使用当前配置 - 构建变体所使用的集合中的 B.java,因此 mockprod> 一。
  4. 耶!现在您有两种功能不同的产品口味。

此行为不限于类,您可以使用风格或类型特定的资源、AndroidManifest.xml 文件以及进入源目录的任何内容。

提示:在 Android Studio 中,您可以在“项目文件”部分中查看将选择哪些文件来编译特定变体。要切换构建变体,请按 Cmd+Shift+A(mac 键盘映射)并搜索 构建变体 短语。它通常也会显示在 Android Studio 窗口的左下角。

关于java - 特定口味的变体如何发挥作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40786054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com