2014-01-29 36 views
3

我有一个问题,当使用摇篮涉及到Android Studio中的味道...... 考虑以下几点:构建变量在使用Android的工作室摇篮

你有你的身材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 

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

谢谢!

最好的问候,克里斯托弗 史蒂芬

回答

5

我发现,只有资源得到合并这种方式。源文件被合并到单个构建路径中。您需要像使用Constants.java一样将您的AnotherActivity.java复制到每种风格。着眼于重构你的源代码以减少重复是你能做的最好的。你可以用src/main/java中的AbstractAnotherActivity.java来完成这个工作,其他的扩展。

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

0

当使用Gradle风格(显然名称相同)时,一个类会完全替换另一个类。避免重复使用代码的最佳做法是在MainActivity中拥有所有共享代码,这样您就不会复制代码(否则必须在多个位置进行更改)。参考AnotherActivity类中的任何其他代码/覆盖。

相关问题