3

如果我有3個口味flavor1,flavor2和flavour3,每個口味都有不同的參數,但每個主要風味有不同的資源的Dev,Pat和Prod「sub-flavors」版本。在多風味的應用程序,如何避免重複的資源

所以我現在有9種不同的風味,但只有3個不同的資源文件夾)。我希望同樣的「子口味」能夠使用相同的資源。

我該怎麼做?我在文檔中看到了flavorDimensions,但不知道如何配置資源文件夾。

在我使用的東西的那一刻就像

sourceSets { 

    flavor1_dev{ 
      res.srcDir 'src/flavor1/res' 
     } 

    flavor1_prod{ 
      res.srcDir 'src/flavor1/res' 
     } 

    flavor2_dev{ 
      res.srcDir 'src/flavor2/res' 
     } 

    flavor2_prod{ 
      res.srcDir 'src/flavor2/res' 
     } 

}  
+0

它是否工作? –

+0

是的,但它的作品,但我想知道如何使用flavorDimensions,或者如果有任何其他方式來做到這一點。 –

+0

你可以從不同的味道構建排除資源,檢查此https://stackoverflow.com/questions/33263567/how-to-exclude-res-folder-from-gradle-build-flavours/45581826#45581826 – lxknvlk

回答

1

你需要搖籃口味如。 flavor1flavor2等,以及生成類型等devprod

從見例如:http://developer.android.com/tools/building/configuring-gradle.htmlhttp://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Sourcesets-and-Dependencies

例如:

android.sourceSets.flavor1Debug 位置的src/flavor1Debug/

android.sourceSets.flavor1Release 位置src/flavor1發佈/

android.sourceSets.flavor2Debug 位置的src/flavor2Debug/

android.sourceSets.flavor2Release 位置的src/flavor2Release/

而且,這個問題是非常相似How can I specify per flavor buildType sourceSets?

+0

任何想法如何用flavorDimension做到這一點? http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Multi-flavor-variants –

-1

只要把公共資源在主/ RES。主要/資源中的所有資源將被風味所覆蓋。 例如,如果你想覆蓋字符串資源添加,

主要字符串文件:/src/main/res/values/strings.xml

<resources> 
    <string name="app_name">Main</string> 
    <string name="app_name_full">Main app</string> 
    <string name="app_email">[email protected]</string> 
    <string name="app_phone">123</string> 
    <string name="app_website">www.abc.com</string> 
</resources> 

和風味串文件:/ src目錄/ flavor1/RES /values/strings.xml

<resources> 
    <string name="app_name">Flavour App Name</string> 
</resources> 

只有APP_NAME是要在味道和其他資源,如app_full_name變化仍是所有口味訪問。

+0

你不能使用main,並期望它被覆蓋。這不起作用。主要應該用於「一切」,否則它需要分開。 – StarWind0

+0

@ StarWind在這裏有一個問題,這將在編譯時失敗,出現「重複資源」 – box

相關問題