使用 Flavors - 不同的代码构建不同的应用程序。
Building different apps using Flavors - different code.
我正在构建一个具有多种不同风格的应用程序。我的问题是,如果我根据风格对活动使用不同的代码,我是否需要在所有风格目录中包含该代码的副本,或者如果我只是将代码的副本留在 app/src/main/java 目录中,将如果我不将它包含在 flavor 目录中,则所有其他 flavors 都使用 main/java 中的文件。
我有
app/src/main/java/com/mycompany/CodeA.java
和
app/src/flavor1/java/com/mycompany/CodeA.java
flavor2 没有专门的source sets 文件夹,flavor2 会使用app/src/main/java/com/mycompany/CodeA.java 中的代码文件吗?或者我是否需要创建一个源集文件夹,其中包含每种风格的代码副本?我为几种风格使用不同的资源文件夹,但对于所有其他风格,资源文件夹默认为 app/src/main 目录中的文件。
注意:对于给定的构建变体,如果 Gradle 遇到两个或多个定义相同 Java class 的源集目录,则会引发构建错误。例如,在构建调试 APK 时,您不能同时定义 src/debug/Utility.java 和 src/main/Utility.java。这是因为 Gradle 在构建过程中查看了这两个目录并抛出了 "duplicate class" 错误。如果你想要不同版本的 Utility.java 用于不同的构建类型,你可以让每个构建类型定义它自己的文件版本,而不是将它包含在主/源集中。 - 来自 https://developer.android.com/studio/build/build-variants 的引述。
这正是你要问的。所以答案 - 它不会编译,你必须在两种风格中而不是在 main 中定义代码文件。
我正在构建一个具有多种不同风格的应用程序。我的问题是,如果我根据风格对活动使用不同的代码,我是否需要在所有风格目录中包含该代码的副本,或者如果我只是将代码的副本留在 app/src/main/java 目录中,将如果我不将它包含在 flavor 目录中,则所有其他 flavors 都使用 main/java 中的文件。
我有
app/src/main/java/com/mycompany/CodeA.java
和
app/src/flavor1/java/com/mycompany/CodeA.java
flavor2 没有专门的source sets 文件夹,flavor2 会使用app/src/main/java/com/mycompany/CodeA.java 中的代码文件吗?或者我是否需要创建一个源集文件夹,其中包含每种风格的代码副本?我为几种风格使用不同的资源文件夹,但对于所有其他风格,资源文件夹默认为 app/src/main 目录中的文件。
注意:对于给定的构建变体,如果 Gradle 遇到两个或多个定义相同 Java class 的源集目录,则会引发构建错误。例如,在构建调试 APK 时,您不能同时定义 src/debug/Utility.java 和 src/main/Utility.java。这是因为 Gradle 在构建过程中查看了这两个目录并抛出了 "duplicate class" 错误。如果你想要不同版本的 Utility.java 用于不同的构建类型,你可以让每个构建类型定义它自己的文件版本,而不是将它包含在主/源集中。 - 来自 https://developer.android.com/studio/build/build-variants 的引述。 这正是你要问的。所以答案 - 它不会编译,你必须在两种风格中而不是在 main 中定义代码文件。