我正在构建具有几种不同风格的应用程序。我的问题是,如果我根据风味使用不同的代码进行活动,是否需要在所有风味指导中包含该代码的副本,或者是否仅将代码的副本保留在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目录中的文件。
答案 0 :(得分:1)
注意:对于给定的构建变体,如果Gradle遇到两个或多个定义了相同Java类的源集目录,则Gradle会引发构建错误。例如,构建调试APK时,不能同时定义src / debug / Utility.java和src / main / Utility.java。这是因为Gradle在构建过程中会同时查看这两个目录,并引发“重复类”错误。如果要为不同的构建类型使用不同版本的Utility.java,则可以使每种构建类型定义其自己的文件版本,而不是将其包括在main / source集中。 -https://developer.android.com/studio/build/build-variants中的引号。 这正是您的要求。因此,答案-它不会编译,您必须同时使用两种方式而不是使用main来定义代码文件。