0

我正在构建一个具有几种不同风格的应用程序。我的问题是,如果我对基于风味的活动使用不同的代码,我是否需要在所有风味目录中包含该代码的副本,或者如果我只是将代码的副本留在 app/src/main/java 目录中,如果我不将它包含在风味目录中,所有其他风味是否会使用 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 目录中的文件。

4

1 回答 1

1

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

于 2018-10-23T15:59:36.627 回答