2014-09-11 50 views
7

Ben bu dizin yapısına sahip Say gradle ile belirli bir Android Ürün Lezzet bina:Eğer bölgesel kaynaklar hariç tutabilir (örn değerler-fr)

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

values-fr hem flavor1 ve flavor2 ve böylece values yaygındır, values-fr ve values-de sadece values ve values-de paketlemeliyim

flavor3

ambalajlı almalısınız. Bu yüzden, values-fr kaynak klasörünü yalnızca flavor3'dan hariç tutmam gerekiyor.

Aşağıdakiler gibi bir çok bileşimi denedim, ancak bunu belirleyemem ya da mümkün olsa bile.

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

Ayrıca ülke kodları listesini kontrol edebilirsiniz:

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

DÜZENLEME

Ben bu çalışma çözümü kullanarak yukarıdaki örneğin sadece Alman dahil bulundu ICU here'dan. Sadece Alman bu durumda (de) -

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

cevap

2

son çalışma çözümdür için bir dil şunlardır:

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

+0

ile çalışmıyor, bu yüzden 'de' ne anlama geliyor? varsayılan mı yoksa alman mı? Bu durumda –

+0

'de de' Almanca –

0

Bu parçacığını kullanarak bu klasörleri hariç tutabilir Referans olarak, ICU here'dan ülke kodları listesini de kontrol edebilirsiniz.

+0

Bu işe yaramaz gibi gözüküyor, hatta 'res' yerine bile. –

+0

sourceSets android – lxknvlk