2014-09-11 5 views
7

Dire che ho questa struttura di directory:Posso escludere risorse regionali (ad esempio, i valori-fr) quando si costruisce un particolare sapore del prodotto Android con Gradle

app 
--src 
    |--main 
    | |--java 
    | |--res 
    |  |--drawable 
    |  |--values 
    |  |--values-fr 
    |  |--values-de 
    | 
    |--flavor1 
    | |--res 
    |  |--drawable 
    | 
    |--flavor2 
    | |--res 
    |  |--drawable 
    | 
    |--flavor3 
     |--res 
      |--drawable 

values-fr è comune per entrambi flavor1 e flavor2, e così values, values-fr e values-de dovrebbe ottenere confezionato

flavor3 dovrebbe pacchetto di solo values e values-de. Quindi devo escludere la cartella delle risorse values-fr solo da flavor3.

Ho provato un sacco di combinazioni come quelle di seguito, ma non riesco a capirlo, o anche se è possibile.

sourceSets { 
    flavor3 { 
     res.exclude 'values-fr/**' 
     res.exclude 'values-fr/' 
    } 
} 

EDIT

ho trovato questa soluzione di lavoro per includere unico tedesco per l'esempio precedente utilizzando:

productFlavors { 
    flavour3 { 
     resConfigs 'de' // include '-de' resources, along with default 'values' 
    } 
} 

È inoltre possibile controllare l'elenco dei codici dei paesi da ICU here.

risposta

2

La soluzione di lavoro finale è quello di includono una lingua - in questo caso, solo in tedesco (de):

productFlavors { 
    flavour3 { 
     resConfigs 'de' // include '-de' resources, along with default 'values' 
    } 
} 

Come riferimento, è anche possibile controllare l'elenco dei codici paese da ICU here.

+0

quindi cosa significa "de"? predefinito o tedesco? –

+0

''de'' in questo caso è tedesco –

0

È possibile escludere le cartelle utilizzando questo frammento:

sourceSets { 
    flavor3 { 
    main { 
     resources { 
     srcDir 'res' 
     exclude '**/values-fr/**' 
     } 
    } 
    } 
} 
+0

Non sembra funzionare, ho paura, anche con 'res' invece. –

+0

sourceSet non funziona con Android – lxknvlk

Problemi correlati