2014-01-29 138 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類中的任何其他代碼/覆蓋。

相關問題