2014-09-11 28 views
7

że mam taką strukturę katalogów:mogę wykluczyć zasobów regionalnych (np Wartości-fr) przy budowie szczególną Android Flavor produktu z Gradle

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

values-fr jest wspólny dla obu flavor1 i flavor2 i tak values, values-fr i values-de powinien dostać pakowane

flavor3 powinni pakować tylko values i values-de. Dlatego muszę wykluczyć folder zasobów values-fr tylko z flavor3.

Próbowałem wielu kombinacji, takich jak te poniżej, ale nie mogę tego rozgryźć, a nawet jeśli jest to możliwe.

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

EDIT

Znalazłem ten roztwór roboczy do obejmują niemieckiego tylko do powyższego przykładu, używając:

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

Można także sprawdzić listę kodów krajów z ICU here.

Odpowiedz

2

Końcowy roztwór roboczy jest zawierać język - w tym przypadku tylko niemieckiej (de):

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

Jako punkt odniesienia można również sprawdzić listę kodów krajów na ICU here.

+0

, więc co oznacza "de"? domyślny czy niemiecki? –

+0

''de'' w tym przypadku jest niemiecki –

0

Można wykluczyć te foldery za pomocą tego fragmentu:

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

To nie wydaje się działać Obawiam się, nawet z 'res' zamiast. –

+0

sourceSets nie działają z Androidem – lxknvlk

Powiązane problemy