在Android Studio中使用Gradle构建变体

cho*_*paz 3 java android build.gradle android-gradle-plugin

我对使用Gradle的Android Studio中的风味有疑问...请考虑以下事项:

你有3种口味; Flavor1,Flavor2和Flavor3.

所有3种口味都依赖于同一个文件,为简单起见,将其称为MainActivity.java.此外,所有3种风格都有自己定义的常量文件,称之为Constants.java.

除了Constants.java之外,Flavor1和Flavor2依赖于相同的源代码.也就是说,Flavor1和Flavor2都使用main,MainActivity.java和另一个文件中的以下文件,为简单起见,将其命名为AnotherActivity.java.

现在,Flavor3使用MainActivity.java,但另一方面需要一些额外的自定义和对AnotherActivity.java的一些更改.

File Structure:
src
-main
--java
---MainActivity.java
---AnotherActivity.java

-Flavor1
--java
---Constants.java
-Flavor2
--java
---Constants.java
-Flavor3
--java
---Constants.java
---AnotherActivity.java
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这种类型的构建依赖,而不会在Android Studio中使用Gradle获得重复的类文件错误?

谢谢!

最诚挚的问候,克里斯托弗史蒂文

Eri*_*uff 5

我发现只有资源以这种方式合并.源文件合并到单个构建路径中.您需要像使用Constants.java一样将AnotherActivity.java复制到每个flavor.期待重构您的源代码以减少重复是您可以做的最好的.您可以使用src/main/java中的AbstractAnotherActivity.java完成此操作,其他人可以扩展.

您会注意到,当您在Android Studio中选择构建变体时,它将仅显示包视图中所选变体的源.